< Summary

Information
Class: ProjectTemplate.Infrastructure.Data.Auditing.ApplicationAuditContext
Assembly: ProjectTemplate.Infrastructure
File(s): /home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Infrastructure/Data/Auditing/ApplicationAuditContext.cs
Line coverage
100%
Covered lines: 43
Uncovered lines: 0
Coverable lines: 43
Total lines: 72
Line coverage: 100%
Branch coverage
75%
Covered branches: 3
Total branches: 4
Branch coverage: 75%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_System()100%11100%
.cctor()100%11100%
.ctor(...)100%11100%
get_ActorId()100%11100%
get_ActorType()100%11100%
get_ActorDisplayName()100%11100%
get_OperationExecutionId()100%11100%
get_ExecutionAttemptId()100%11100%
get_CorrelationId()100%11100%
get_TraceId()100%11100%
get_SpanId()100%11100%
get_DecisionAuditRecordId()100%11100%
get_TenantHash()100%11100%
get_OrganizationHash()100%11100%
NormalizeRequired(...)50%22100%
NormalizeOptional(...)100%22100%

File(s)

/home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Infrastructure/Data/Auditing/ApplicationAuditContext.cs

#LineLine coverage
 1namespace ProjectTemplate.Infrastructure.Data.Auditing;
 2
 3/// <summary>
 4/// Carries host-owned identity and correlation data into application mutation audit records.
 5/// </summary>
 6public sealed record ApplicationAuditContext
 7{
 68    public static ApplicationAuditContext System { get; } = new(
 29        SystemCurrentActorAccessor.ActorName,
 210        ApplicationAuditActorTypes.System,
 211        SystemCurrentActorAccessor.ActorName);
 12
 5213    public ApplicationAuditContext(
 5214        string actorId,
 5215        string actorType,
 5216        string actorDisplayName,
 5217        string? operationExecutionId = null,
 5218        string? executionAttemptId = null,
 5219        string? correlationId = null,
 5220        string? traceId = null,
 5221        string? spanId = null,
 5222        string? decisionAuditRecordId = null,
 5223        string? tenantHash = null,
 5224        string? organizationHash = null)
 25    {
 5226        ActorId = NormalizeRequired(actorId, nameof(actorId));
 5227        ActorType = NormalizeRequired(actorType, nameof(actorType));
 5228        ActorDisplayName = NormalizeRequired(actorDisplayName, nameof(actorDisplayName));
 5229        OperationExecutionId = NormalizeOptional(operationExecutionId);
 5230        ExecutionAttemptId = NormalizeOptional(executionAttemptId);
 5231        CorrelationId = NormalizeOptional(correlationId);
 5232        TraceId = NormalizeOptional(traceId);
 5233        SpanId = NormalizeOptional(spanId);
 5234        DecisionAuditRecordId = NormalizeOptional(decisionAuditRecordId);
 5235        TenantHash = NormalizeOptional(tenantHash);
 5236        OrganizationHash = NormalizeOptional(organizationHash);
 5237    }
 38
 5639    public string ActorId { get; }
 40
 5641    public string ActorType { get; }
 42
 5643    public string ActorDisplayName { get; }
 44
 10045    public string? OperationExecutionId { get; }
 46
 10047    public string? ExecutionAttemptId { get; }
 48
 10049    public string? CorrelationId { get; }
 50
 10051    public string? TraceId { get; }
 52
 5653    public string? SpanId { get; }
 54
 10055    public string? DecisionAuditRecordId { get; }
 56
 5657    public string? TenantHash { get; }
 58
 5659    public string? OrganizationHash { get; }
 60
 61    private static string NormalizeRequired(string value, string parameterName)
 62    {
 15663        return string.IsNullOrWhiteSpace(value)
 15664            ? throw new ArgumentException("Value must not be empty.", parameterName)
 15665            : value.Trim();
 66    }
 67
 68    private static string? NormalizeOptional(string? value)
 69    {
 41670        return string.IsNullOrWhiteSpace(value) ? null : value.Trim();
 71    }
 72}