public override IRootResolver CreateRootResolver(EventFlowOptions eventFlowOptions) { var resolver = eventFlowOptions .UseInMemoryReadStoreFor<InMemoryTestAggregateReadModel>() .CreateResolver(); _readModelPopulator = resolver.Resolve<IReadModelPopulator>(); _queryProcessor = resolver.Resolve<IQueryProcessor>(); return resolver; }
public override IRootResolver CreateRootResolver(EventFlowOptions eventFlowOptions) { var connectionSettings = ConnectionSettings.Create() .EnableVerboseLogging() .KeepReconnecting() .SetDefaultUserCredentials(new UserCredentials("admin", "changeit")) .Build(); var resolver = eventFlowOptions .UseInMemoryReadStoreFor <InMemoryTestAggregateReadModel>() .AddMetadataProvider <AddGuidMetadataProvider>() .UseEventStoreEventStore(new IPEndPoint(IPAddress.Loopback, 1113), connectionSettings) .CreateResolver(); _queryProcessor = resolver.Resolve <IQueryProcessor>(); _readModelPopulator = resolver.Resolve <IReadModelPopulator>(); return(resolver); }
public override IRootResolver CreateRootResolver(EventFlowOptions eventFlowOptions) { var connectionSettings = ConnectionSettings.Create() .EnableVerboseLogging() .KeepReconnecting() .SetDefaultUserCredentials(new UserCredentials("admin", "changeit")) .Build(); var resolver = eventFlowOptions .UseInMemoryReadStoreFor<InMemoryTestAggregateReadModel>() .AddMetadataProvider<AddGuidMetadataProvider>() .UseEventStoreEventStore(new IPEndPoint(IPAddress.Loopback, 1113), connectionSettings) .CreateResolver(); _queryProcessor = resolver.Resolve<IQueryProcessor>(); _readModelPopulator = resolver.Resolve<IReadModelPopulator>(); return resolver; }
public override IRootResolver CreateRootResolver(EventFlowOptions eventFlowOptions) { var storePath = Path.Combine( Path.GetTempPath(), Guid.NewGuid().ToString()); Directory.CreateDirectory(storePath); var resolver = eventFlowOptions .UseInMemoryReadStoreFor <InMemoryTestAggregateReadModel>() .UseFilesEventStore(FilesEventStoreConfiguration.Create(storePath)) .CreateResolver(); _configuration = resolver.Resolve <IFilesEventStoreConfiguration>(); _readModelPopulator = resolver.Resolve <IReadModelPopulator>(); _queryProcessor = resolver.Resolve <IQueryProcessor>(); return(resolver); }
public static EventFlowOptions UseMssqlReadModel <TReadModel, TReadModelLocator>( this EventFlowOptions eventFlowOptions) where TReadModel : class, IMssqlReadModel, new() where TReadModelLocator : IReadModelLocator { eventFlowOptions .RegisterServices(f => { if (!f.HasRegistrationFor <IReadModelSqlGenerator>()) { f.Register <IReadModelSqlGenerator, ReadModelSqlGenerator>(Lifetime.Singleton); } f.Register <IMssqlReadModelStore <TReadModel>, MssqlReadModelStore <TReadModel> >(); f.Register <IReadModelStore <TReadModel> >(r => r.Resolver.Resolve <IMssqlReadModelStore <TReadModel> >()); }) .UseReadStoreFor <IMssqlReadModelStore <TReadModel>, TReadModel, TReadModelLocator>(); return(eventFlowOptions); }
public async Task ResolverAggregatesFactoryCanResolve() { using (var serviceProvider = EventFlowOptions.New() .RegisterServices(sr => sr.AddTransient(typeof(Service))) .ServiceCollection.BuildServiceProvider()) { // Arrange var aggregateFactory = serviceProvider.GetRequiredService <IAggregateFactory>(); // Act var serviceDependentAggregate = await aggregateFactory.CreateNewAggregateAsync <ServiceDependentAggregate, ThingyId>(ThingyId.New).ConfigureAwait(false); // Assert serviceDependentAggregate.Service.Should() .NotBeNull() .And .BeOfType <Service>(); } }
public override IRootResolver CreateRootResolver(EventFlowOptions eventFlowOptions) { TestDatabase = MsSqlHelper.CreateDatabase("eventflow"); var resolver = eventFlowOptions .ConfigureMsSql(MsSqlConfiguration.New.SetConnectionString(TestDatabase.ConnectionString)) .UseEventStore<MsSqlEventStore>() .UseMssqlReadModel<MsSqlTestAggregateReadModel>() .CreateResolver(); MsSqlConnection = resolver.Resolve<IMsSqlConnection>(); ReadModelSqlGenerator = resolver.Resolve<IReadModelSqlGenerator>(); ReadModelPopulator = resolver.Resolve<IReadModelPopulator>(); var databaseMigrator = resolver.Resolve<IMsSqlDatabaseMigrator>(); EventFlowEventStoresMsSql.MigrateDatabase(databaseMigrator); databaseMigrator.MigrateDatabaseUsingEmbeddedScripts(GetType().Assembly); return resolver; }
public void SetUpIntegrationTest() { var eventFlowOptions = Options(EventFlowOptions.New()) .RegisterServices(c => c.AddTransient <IScopedContext, ScopedContext>()) .AddQueryHandler <DbContextQueryHandler, DbContextQuery, string>() .AddDefaults(EventFlowTestHelpers.Assembly, type => type != typeof(DbContextQueryHandler)); ServiceProvider = Configure(eventFlowOptions); AggregateStore = ServiceProvider.GetRequiredService <IAggregateStore>(); EventStore = ServiceProvider.GetRequiredService <IEventStore>(); SnapshotStore = ServiceProvider.GetRequiredService <ISnapshotStore>(); SnapshotPersistence = ServiceProvider.GetRequiredService <ISnapshotPersistence>(); SnapshotDefinitionService = ServiceProvider.GetRequiredService <ISnapshotDefinitionService>(); EventPersistence = ServiceProvider.GetRequiredService <IEventPersistence>(); CommandBus = ServiceProvider.GetRequiredService <ICommandBus>(); QueryProcessor = ServiceProvider.GetRequiredService <IQueryProcessor>(); ReadModelPopulator = ServiceProvider.GetRequiredService <IReadModelPopulator>(); SagaStore = ServiceProvider.GetRequiredService <ISagaStore>(); }
public override IRootResolver CreateRootResolver(EventFlowOptions eventFlowOptions) { TestDatabase = MsSqlHelper.CreateDatabase("eventflow"); var resolver = eventFlowOptions .ConfigureMsSql(MsSqlConfiguration.New.SetConnectionString(TestDatabase.ConnectionString)) .UseEventStore <MsSqlEventStore>() .UseMssqlReadModel <MsSqlTestAggregateReadModel>() .CreateResolver(); MsSqlConnection = resolver.Resolve <IMsSqlConnection>(); ReadModelSqlGenerator = resolver.Resolve <IReadModelSqlGenerator>(); ReadModelPopulator = resolver.Resolve <IReadModelPopulator>(); var databaseMigrator = resolver.Resolve <IMsSqlDatabaseMigrator>(); EventFlowEventStoresMsSql.MigrateDatabase(databaseMigrator); databaseMigrator.MigrateDatabaseUsingEmbeddedScripts(GetType().Assembly); return(resolver); }
public static EventFlowOptions AddEventUpgraders( this EventFlowOptions eventFlowOptions, IEnumerable <Type> eventUpgraderTypes) { foreach (var eventUpgraderType in eventUpgraderTypes) { var t = eventUpgraderType; var eventUpgraderForAggregateType = t .GetInterfaces() .SingleOrDefault(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IEventUpgrader <,>)); if (eventUpgraderForAggregateType == null) { throw new ArgumentException(string.Format( "Type '{0}' does not have the IEventUpgrader<TAggregate, TIdentity> interface", eventUpgraderType.Name)); } eventFlowOptions.RegisterServices(sr => sr.Register(eventUpgraderForAggregateType, t)); } return(eventFlowOptions); }
public void SetUp() { _serviceProvider = EventFlowOptions.New() .AddSagas(typeof(AlternativeSagaStoreTestClasses.TestSaga)) .AddCommandHandlers( typeof(AlternativeSagaStoreTestClasses.SagaTestACommandHandler), typeof(AlternativeSagaStoreTestClasses.SagaTestBCommandHandler), typeof(AlternativeSagaStoreTestClasses.SagaTestCCommandHandler)) .AddEvents( typeof(AlternativeSagaStoreTestClasses.SagaTestEventA), typeof(AlternativeSagaStoreTestClasses.SagaTestEventB), typeof(AlternativeSagaStoreTestClasses.SagaTestEventC)) .RegisterServices(sr => { sr.AddTransient(typeof(AlternativeSagaStoreTestClasses.TestSagaLocator)); sr.AddSingleton <ISagaStore, AlternativeSagaStoreTestClasses.InMemorySagaStore>(); }) .ServiceCollection.BuildServiceProvider(); _commandBus = _serviceProvider.GetRequiredService <ICommandBus>(); _aggregateStore = _serviceProvider.GetRequiredService <IAggregateStore>(); _sagaStore = (AlternativeSagaStoreTestClasses.InMemorySagaStore)_serviceProvider.GetRequiredService <ISagaStore>(); }
public abstract IRootResolver CreateRootResolver(EventFlowOptions eventFlowOptions);
public static EventFlowOptions UseMssqlEventStore(this EventFlowOptions eventFlowOptions) { eventFlowOptions.UseEventStore <MsSqlEventStore>(); return(eventFlowOptions); }
public static EventFlowOptions AddOwinMetadataProviders(this EventFlowOptions eventFlowOptions) { return(eventFlowOptions .AddMetadataProviders(EventFlowOwin.Assembly)); }
public static IEnumerable <IEventFlowOptions> TestCases() { yield return(EventFlowOptions.New()); }
public static EventFlowOptions UseMssqlEventStore(this EventFlowOptions eventFlowOptions) { eventFlowOptions.AddRegistration(new Registration <IEventStore, MsSqlEventStore>()); return(eventFlowOptions); }
public static EventFlowOptions UseEventStoreEventStore( this EventFlowOptions eventFlowOptions) { return(eventFlowOptions.UseEventStore <EventStoreEventStore>()); }