public static IEventSourcingBuilder UseTextFileEventStore <TAggregate, TKey>( this IEventSourcingBuilder builder, Action <TextFileEventStoreOptions> setupAction) where TAggregate : IAggregate <TKey> { if (builder is null) { throw new ArgumentNullException(nameof(builder)); } builder.Services .ConfigureAggregate <TAggregate, TKey, TextFileEventStoreOptions>(setupAction) .AddScoped <IEventStore <TAggregate, TKey>, TextFileEventStore <TAggregate, TKey> >(); return(builder.TryUseDefaultSnapshotStore <TAggregate, TKey>()); }
public static IEventSourcingBuilder UseEfCoreEventStore <TEventDbContext, TAggregate, TKey>( this IEventSourcingBuilder builder) where TEventDbContext : DbContext, IEventDbContext <TAggregate, TKey> where TAggregate : IAggregate <TKey> { if (builder is null) { throw new System.ArgumentNullException(nameof(builder)); } builder.Services .AddScoped <IEventStore <TAggregate, TKey>, EfCoreEventStore <TEventDbContext, TAggregate, TKey> >() .AddScoped <IEventStoreInitializer <TAggregate, TKey>, EfCoreEventStoreInitializer <TEventDbContext, TAggregate, TKey> >() ; return(builder.TryUseDefaultSnapshotStore <TAggregate, TKey>()); }