< Summary - Syki

Information
Class: Syki.Back.Configs.AuditConfigs
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Configs/AuditConfigs.cs
Tag: 4_16869239191
Line coverage
100%
Covered lines: 22
Uncovered lines: 0
Coverable lines: 22
Total lines: 37
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AddAuditConfigs(...)100%11100%
UseAudit(...)100%44100%

File(s)

/home/runner/work/syki/syki/Back/Configs/AuditConfigs.cs

#LineLine coverage
 1using Audit.Core;
 2using Syki.Back.Audit;
 3using Syki.Back.Features.Academic.CreateCampus;
 4
 5namespace Syki.Back.Configs;
 6
 7public static class AuditConfigs
 8{
 9    public static void AddAuditConfigs(this WebApplicationBuilder _)
 10    {
 411        Configuration.Setup().UseEntityFramework(_ => _
 212            .AuditTypeExplicitMapper(_ => _
 213                .Map<Campus, AuditLog>()
 29614                .AuditEntityAction<AuditLog>((evt, entry, log) => log.Fill(evt, entry)))
 415            .IgnoreMatchedProperties(true));
 216    }
 17
 18    public static void UseAudit(this IApplicationBuilder app)
 19    {
 220        var contextAccessor = app.ApplicationServices.GetService<IHttpContextAccessor>()!;
 21
 222        Configuration.AddCustomAction(ActionType.OnScopeCreated, scope =>
 223        {
 1474824            var httpContext = contextAccessor.HttpContext;
 1982225            if (httpContext == null) return;
 226
 967427            if (!httpContext.User.IsAuthenticated)
 228            {
 339429                scope.Event.CustomFields["Skip"] = true;
 339430                return;
 231            }
 232
 628033            scope.Event.CustomFields["UserId"] = httpContext.User.Id;
 628034            scope.Event.CustomFields["InstitutionId"] = httpContext.User.InstitutionId;
 628235        });
 236    }
 37}