< Summary

Information
Class: AsiBackbone.EntityFrameworkCore.AsiBackboneEntityFrameworkCoreBuilderExtensions
Assembly: AsiBackbone.EntityFrameworkCore
File(s): /home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.EntityFrameworkCore/AsiBackboneEntityFrameworkCoreBuilderExtensions.cs
Line coverage
100%
Covered lines: 21
Uncovered lines: 0
Coverable lines: 21
Total lines: 66
Line coverage: 100%
Branch coverage
50%
Covered branches: 6
Total branches: 12
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
UseEfCoreAuditLedger(...)50%22100%
UseEfCoreAuditLifecycle(...)50%22100%
UseEfCoreGovernanceOutbox(...)50%88100%

File(s)

/home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.EntityFrameworkCore/AsiBackboneEntityFrameworkCoreBuilderExtensions.cs

#LineLine coverage
 1using AsiBackbone.Core.Audit;
 2using AsiBackbone.Core.Outbox;
 3using AsiBackbone.DependencyInjection;
 4using AsiBackbone.EntityFrameworkCore.Audit;
 5using AsiBackbone.EntityFrameworkCore.Outbox;
 6using Microsoft.EntityFrameworkCore;
 7using Microsoft.Extensions.DependencyInjection;
 8
 9namespace AsiBackbone.EntityFrameworkCore;
 10
 11/// <summary>
 12/// Provides explicit builder facade extension methods for EF Core host-owned persistence.
 13/// </summary>
 14public static class AsiBackboneEntityFrameworkCoreBuilderExtensions
 15{
 16    /// <summary>
 17    /// Adds EF Core audit ledger storage through the AsiBackbone builder facade.
 18    /// </summary>
 19    public static IAsiBackboneBuilder UseEfCoreAuditLedger<TDbContext>(this IAsiBackboneBuilder builder)
 20        where TDbContext : DbContext
 21    {
 422        ArgumentNullException.ThrowIfNull(builder);
 23
 224        _ = builder.Services.AddScoped<DbContext>(serviceProvider =>
 425            serviceProvider.GetRequiredService<TDbContext>());
 226        _ = builder.Services.AddScoped<IAsiBackboneAuditLedgerStore, EfCoreAuditLedgerStore>();
 27
 228        return builder;
 29    }
 30
 31    /// <summary>
 32    /// Adds EF Core audit residue lifecycle storage through the AsiBackbone builder facade.
 33    /// </summary>
 34    public static IAsiBackboneBuilder UseEfCoreAuditLifecycle<TDbContext>(this IAsiBackboneBuilder builder)
 35        where TDbContext : DbContext
 36    {
 437        ArgumentNullException.ThrowIfNull(builder);
 38
 239        _ = builder.Services.AddScoped<DbContext>(serviceProvider =>
 440            serviceProvider.GetRequiredService<TDbContext>());
 241        _ = builder.Services.AddScoped<IAsiBackboneAuditResidueLifecycleStore, EfCoreAuditResidueLifecycleStore>();
 42
 243        return builder;
 44    }
 45
 46    /// <summary>
 47    /// Adds outcome-aware EF Core durable governance outbox storage through the AsiBackbone builder facade.
 48    /// </summary>
 49    public static IAsiBackboneBuilder UseEfCoreGovernanceOutbox<TDbContext>(this IAsiBackboneBuilder builder)
 50        where TDbContext : DbContext
 51    {
 452        ArgumentNullException.ThrowIfNull(builder);
 53
 254        _ = builder.Services.AddScoped<DbContext>(serviceProvider =>
 655            serviceProvider.GetRequiredService<TDbContext>());
 256        _ = builder.Services.AddScoped<EfCoreGovernanceOutboxOutcomeStore>();
 257        _ = builder.Services.AddScoped<IAsiBackboneGovernanceOutboxClaimOutcomeStore>(serviceProvider =>
 458            serviceProvider.GetRequiredService<EfCoreGovernanceOutboxOutcomeStore>());
 259        _ = builder.Services.AddScoped<IAsiBackboneGovernanceOutboxClaimStore>(serviceProvider =>
 460            serviceProvider.GetRequiredService<EfCoreGovernanceOutboxOutcomeStore>());
 261        _ = builder.Services.AddScoped<IAsiBackboneGovernanceOutboxStore>(serviceProvider =>
 462            serviceProvider.GetRequiredService<EfCoreGovernanceOutboxOutcomeStore>());
 63
 264        return builder;
 65    }
 66}