public static IOpenCqrsServiceBuilder AddCosmosDbMongoDbProvider(this IOpenCqrsServiceBuilder builder, IConfiguration configuration) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } builder.Services .Configure <DomainDbConfiguration>(configuration.GetSection("DomainDbConfiguration")); builder.Services .AddTransient <IAggregateStore, AggregateStore>() .AddTransient <ICommandStore, CommandStore>() .AddTransient <IEventStore, EventStore>(); builder.Services .AddTransient <IAggregateDocumentFactory, AggregateDocumentFactory>() .AddTransient <ICommandDocumentFactory, CommandDocumentFactory>() .AddTransient <IEventDocumentFactory, EventDocumentFactory>(); return(builder); }
public static IOpenCqrsServiceBuilder AddSqliteStore(this IOpenCqrsServiceBuilder builder, Action <DatabaseOptions> configureOptions) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configureOptions == null) { throw new ArgumentNullException(nameof(configureOptions)); } builder.Services.Configure(configureOptions); var sp = builder.Services.BuildServiceProvider(); var dbOptions = sp.GetService <IOptions <DatabaseOptions> >().Value; builder.AddEFStore(); builder.Services.AddDbContext <DomainDbContext>(options => options.UseSqlite(dbOptions.ConnectionString)); builder.Services.AddTransient <IDatabaseProvider, SqliteDatabaseProvider>(); return(builder); }
public static IOpenCqrsServiceBuilder AddCosmosDbSqlProvider(this IOpenCqrsServiceBuilder builder, IConfiguration configuration) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } builder.Services.Configure <DomainDbConfiguration>(configuration.GetSection("DomainDbConfiguration")); var endpoint = configuration.GetSection("DomainDbConfiguration:ServerEndpoint").Value; var key = configuration.GetSection("DomainDbConfiguration:AuthKey").Value; builder.Services.AddSingleton <IDocumentClient>(x => new DocumentClient(new Uri(endpoint), key)); builder.Services.AddTransient <ICommandStore, CommandStore>(); builder.Services.AddTransient <IEventStore, EventStore>(); builder.Services.AddTransient <IAggregateDocumentFactory, AggregateDocumentFactory>(); builder.Services.AddTransient <ICommandDocumentFactory, CommandDocumentFactory>(); builder.Services.AddTransient <IEventDocumentFactory, EventDocumentFactory>(); builder.Services.AddTransient <IDocumentRepository <AggregateDocument>, AggregateRepository>(); builder.Services.AddTransient <IDocumentRepository <CommandDocument>, CommandRepository>(); builder.Services.AddTransient <IDocumentRepository <EventDocument>, EventRepository>(); return(builder); }
public static IOpenCqrsServiceBuilder AddServiceBusProvider(this IOpenCqrsServiceBuilder builder, IConfiguration configuration) { builder.Services.Configure <ServiceBusConfiguration>(configuration.GetSection(Constants.ServiceBusConfigurationSection)); builder.Services.AddTransient <IBusMessageDispatcher, BusMessageDispatcher>(); builder.Services.AddTransient <IQueueClient, QueueClient>(); builder.Services.AddTransient <IMessageFactory, MessageFactory>(); return(builder); }
public static IOpenCqrsServiceBuilder AddEFProvider(this IOpenCqrsServiceBuilder builder, IConfiguration configuration) { builder.Services.Configure <DomainDbConfiguration>(configuration.GetSection(Constants.DomainDbConfigurationSection)); builder.Services.Scan(s => s .FromAssembliesOf(typeof(DomainDbContext)) .AddClasses() .AsImplementedInterfaces()); return(builder); }
public static IOpenCqrsServiceBuilder AddEFStore(this IOpenCqrsServiceBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.Services.Scan(s => s .FromAssembliesOf(typeof(DomainDbContext)) .AddClasses() .AsImplementedInterfaces()); return(builder); }
public static IOpenCqrsServiceBuilder AddInMemoryStore(this IOpenCqrsServiceBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.AddEFStore(); builder.Services.AddDbContext <DomainDbContext>(options => options.UseInMemoryDatabase(databaseName: "DomainDb")); builder.Services.AddTransient <IDatabaseProvider, InMemoryDatabaseProvider>(); return(builder); }
public static IOpenCqrsServiceBuilder AddOptions(this IOpenCqrsServiceBuilder builder, Action <Options> setupAction) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (setupAction == null) { throw new ArgumentNullException(nameof(setupAction)); } builder.Services.Configure(setupAction); return(builder); }
public static IOpenCqrsServiceBuilder AddFluentValidation(this IOpenCqrsServiceBuilder builder, Action <ValidationOptions> configureOptions) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configureOptions == null) { throw new ArgumentNullException(nameof(configureOptions)); } builder.Services.Configure(configureOptions); builder.Services.AddTransient <IValidationProvider, FluentValidationProvider>(); return(builder); }
public static IOpenCqrsServiceBuilder AddMemoryCache(this IOpenCqrsServiceBuilder builder, Action <CacheOptions> configureOptions) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configureOptions == null) { throw new ArgumentNullException(nameof(configureOptions)); } builder.Services.Configure(configureOptions); builder.Services.AddTransient <ICacheProvider, MemoryCacheProvider>(); return(builder); }
/// <summary> /// Adds the service bus provider. /// </summary> /// <param name="builder">The builder.</param> /// <param name="setupAction"></param> /// <returns></returns> public static IOpenCqrsServiceBuilder AddUI(this IOpenCqrsServiceBuilder builder, Action <UIOptions> setupAction) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (setupAction == null) { throw new ArgumentNullException(nameof(setupAction)); } builder.Services.Configure(setupAction); builder.Services.Scan(s => s .FromAssembliesOf(typeof(GetAggregateModel)) .AddClasses() .AsImplementedInterfaces()); return(builder); }
/// <summary> /// Adds the service bus provider. /// </summary> /// <param name="builder">The builder.</param> /// <returns></returns> public static IOpenCqrsServiceBuilder AddRabbitMQ(this IOpenCqrsServiceBuilder builder, Action <BusOptions> configureOptions) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configureOptions == null) { throw new ArgumentNullException(nameof(configureOptions)); } builder.Services.Configure(configureOptions); builder.Services .AddTransient <IBusMessageDispatcher, BusMessageDispatcher>() .AddTransient <IBusProvider, RabbitMQBusProvider>() .AddTransient <IMessageFactory, MessageFactory>(); return(builder); }
public static IOpenCqrsServiceBuilder AddRedisCache(this IOpenCqrsServiceBuilder builder, Action <RedisCacheOptions> configureOptions) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configureOptions == null) { throw new ArgumentNullException(nameof(configureOptions)); } builder.Services.Configure(configureOptions); var sp = builder.Services.BuildServiceProvider(); var options = sp.GetService <IOptions <RedisCacheOptions> >().Value; builder.Services.AddSingleton <IConnectionMultiplexer>(x => ConnectionMultiplexer.Connect(options.ConnectionString)); builder.Services.AddSingleton <ICacheProvider>(x => new RedisCacheProvider(x.GetRequiredService <IConnectionMultiplexer>(), options.Db, options.AsyncState)); return(builder); }
public static IOpenCqrsServiceBuilder AddMySqlProvider(this IOpenCqrsServiceBuilder builder, IConfiguration configuration) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } builder.AddEFProvider(configuration); var connectionString = configuration.GetSection(Constants.DomainDbConfigurationConnectionString).Value; builder.Services.AddDbContext <DomainDbContext>(options => options.UseMySQL(connectionString)); builder.Services.AddTransient <IDatabaseProvider, MySqlDatabaseProvider>(); return(builder); }
public static IOpenCqrsServiceBuilder AddCosmosMongoStore(this IOpenCqrsServiceBuilder builder, Action <MongoOptions> setupAction) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (setupAction == null) { throw new ArgumentNullException(nameof(setupAction)); } builder.Services.Configure(setupAction); builder.Services .AddTransient <IStoreProvider, MongoStoreProvider>(); builder.Services .AddTransient <IAggregateDocumentFactory, AggregateDocumentFactory>() .AddTransient <ICommandDocumentFactory, CommandDocumentFactory>() .AddTransient <IEventDocumentFactory, EventDocumentFactory>(); return(builder); }
public static IOpenCqrsServiceBuilder AddMemoryCache(this IOpenCqrsServiceBuilder builder) { return(AddMemoryCache(builder, opt => { })); }
public static IOpenCqrsServiceBuilder AddCosmosSqlStore(this IOpenCqrsServiceBuilder builder, IConfiguration configuration) { return(AddCosmosSqlStore(builder, configuration, opt => { })); }
public static IOpenCqrsServiceBuilder AddFluentValidation(this IOpenCqrsServiceBuilder builder) { return(AddFluentValidation(builder, opt => { })); }
public static IOpenCqrsServiceBuilder AddSqliteStore(this IOpenCqrsServiceBuilder builder) { return(AddSqliteStore(builder, opt => { })); }
public static IOpenCqrsServiceBuilder AddCosmosMongoStore(this IOpenCqrsServiceBuilder builder) { return(AddCosmosMongoStore(builder, opt => { })); }
public static IOpenCqrsServiceBuilder AddRabbitMQ(this IOpenCqrsServiceBuilder builder) { return(AddRabbitMQ(builder, opt => { })); }