public static IKledexServiceBuilder AddInMemoryProvider(this IKledexServiceBuilder builder, IConfiguration configuration) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var store = new InMemoryStore(new VersionService());// todo var busdistpacher = new InMemoryBusMessageDispatcher(); builder.Services .AddTransient <IAggregateStore>((sp) => store) .AddTransient <ICommandStore>((sp) => store) .AddTransient <IEventStore>((sp) => store); builder.Services.AddSingleton <IBusMessageDispatcher>((sp) => busdistpacher); builder.Services.AddSingleton <IResolver, Resolver>(); //builder.Services.Scan(s => s // .FromAssembliesOf(typeof(InMemoryStore)) // .AddClasses() // .AsImplementedInterfaces()); return(builder); }
public static IKledexServiceBuilder AddCosmosDbSqlProvider(this IKledexServiceBuilder 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 <IDomainStore, DomainStore>(); builder.Services .AddTransient <IAggregateDocumentFactory, AggregateDocumentFactory>() .AddTransient <ICommandDocumentFactory, CommandDocumentFactory>() .AddTransient <IEventDocumentFactory, EventDocumentFactory>(); builder.Services .AddTransient <IDocumentRepository <AggregateDocument>, AggregateRepository>() .AddTransient <IDocumentRepository <CommandDocument>, CommandRepository>() .AddTransient <IDocumentRepository <EventDocument>, EventRepository>(); return(builder); }
public static IKledexServiceBuilder AddCosmosDbMongoDbProvider(this IKledexServiceBuilder 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 <IDomainStore, DomainStore>(); builder.Services .AddTransient <IAggregateDocumentFactory, AggregateDocumentFactory>() .AddTransient <ICommandDocumentFactory, CommandDocumentFactory>() .AddTransient <IEventDocumentFactory, EventDocumentFactory>(); return(builder); }
public static IKledexServiceBuilder AddSqlServerStore(this IKledexServiceBuilder 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.UseSqlServer(dbOptions.ConnectionString)); builder.Services.AddTransient <IDatabaseProvider, SqlServerDatabaseProvider>(); return(builder); }
public static IKledexServiceBuilder AddCosmosStore(this IKledexServiceBuilder builder, Action <CosmosDbOptions> configureOptions) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configureOptions == null) { throw new ArgumentNullException(nameof(configureOptions)); } builder.Services.Configure(configureOptions); var serviceProvider = builder.Services.BuildServiceProvider(); var dbOptions = serviceProvider.GetService <IOptions <CosmosDbOptions> >().Value; builder.AddEFStore(); builder.Services.AddDbContext <DomainDbContext>(options => options.UseCosmos(dbOptions.ServiceEndpoint, dbOptions.AuthKey, dbOptions.DatabaseName)); builder.Services.AddTransient <IDatabaseProvider, CosmosDatabaseProvider>(); return(builder); }
public static IKledexServiceBuilder AddEFProvider(this IKledexServiceBuilder 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 IKledexServiceBuilder AddMemoryCacheProvider(this IKledexServiceBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.Services.AddTransient <ICacheProvider, MemoryCacheProvider>(); return(builder); }
/// <summary> /// Adds the service bus provider. /// </summary> /// <param name="builder">The builder.</param> /// <param name="configuration">The configuration.</param> /// <returns></returns> public static IKledexServiceBuilder AddServiceBusProvider(this IKledexServiceBuilder builder, IConfiguration configuration) { builder.Services .Configure <ServiceBusConfiguration>(configuration.GetSection("ServiceBusConfiguration")); builder.Services .AddTransient <IBusMessageDispatcher, BusMessageDispatcher>() .AddTransient <IQueueClient, QueueClient>() .AddTransient <ITopicClient, TopicClient>() .AddTransient <IMessageFactory, MessageFactory>(); return(builder); }
public static IKledexServiceBuilder AddEFStore(this IKledexServiceBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.Services.Scan(s => s .FromAssembliesOf(typeof(DomainDbContext)) .AddClasses() .AsImplementedInterfaces()); return(builder); }
/// <summary> /// Adds the service bus provider. /// </summary> /// <param name="builder">The builder.</param> /// <returns></returns> public static IKledexServiceBuilder AddServiceBusProvider(this IKledexServiceBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.Services .AddTransient <IBusMessageDispatcher, BusMessageDispatcher>() .AddTransient <IBusProvider, BusProvider>() .AddTransient <IMessageFactory, MessageFactory>(); return(builder); }
public static IKledexServiceBuilder AddOptions(this IKledexServiceBuilder 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 IKledexServiceBuilder AddInMemoryProvider(this IKledexServiceBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.AddEFProvider(); builder.Services.AddDbContext <DomainDbContext>(options => options.UseInMemoryDatabase(databaseName: "DomainDb")); builder.Services.AddTransient <IDatabaseProvider, InMemoryDatabaseProvider>(); return(builder); }
public static IKledexServiceBuilder AddFluentValidation(this IKledexServiceBuilder 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 IKledexServiceBuilder AddMemoryCache(this IKledexServiceBuilder 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 IKledexServiceBuilder AddUI(this IKledexServiceBuilder builder, Action <UIOptions> setupAction) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (setupAction == null) { throw new ArgumentNullException(nameof(setupAction)); } builder.Services.Scan(s => s .FromAssembliesOf(typeof(GetAggregateModel)) .AddClasses() .AsImplementedInterfaces()); builder.Services.Configure(setupAction); return(builder); }
/// <summary> /// Adds the service bus provider. /// </summary> /// <param name="builder">The builder.</param> /// <returns></returns> public static IKledexServiceBuilder AddRabbitMQ(this IKledexServiceBuilder 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 IKledexServiceBuilder AddRedisCache(this IKledexServiceBuilder 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 IKledexServiceBuilder AddSqlServerProvider(this IKledexServiceBuilder 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.UseSqlServer(connectionString)); builder.Services.AddTransient <IDatabaseProvider, SqlServerDatabaseProvider>(); return(builder); }
public static IKledexServiceBuilder AddMySqlProvider(this IKledexServiceBuilder builder, IConfiguration configuration) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } builder.AddEFProvider(); var connectionString = configuration.GetConnectionString(Consts.DomainStoreConnectionString); builder.Services.AddDbContext <DomainDbContext>(options => options.UseMySQL(connectionString)); builder.Services.AddTransient <IDatabaseProvider, MySqlDatabaseProvider>(); return(builder); }
public static IKledexServiceBuilder AddRedisCacheProvider(this IKledexServiceBuilder builder, IConfiguration configuration, int db = -1, object asyncState = null) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var connectionString = configuration.GetConnectionString("KledexRedisCache"); if (string.IsNullOrEmpty(connectionString)) { throw new Exception("KledexRedisCache connection string not found."); } builder.Services.AddSingleton <IConnectionMultiplexer>(x => ConnectionMultiplexer.Connect(connectionString)); builder.Services.AddSingleton <ICacheProvider>(x => new RedisCacheProvider(x.GetRequiredService <IConnectionMultiplexer>(), db, asyncState)); return(builder); }
public static IKledexServiceBuilder AddCosmosMongoStore(this IKledexServiceBuilder 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 IKledexServiceBuilder AddCosmosMongoStore(this IKledexServiceBuilder builder) { return(AddCosmosMongoStore(builder, opt => { })); }
public static IKledexServiceBuilder AddFluentValidation(this IKledexServiceBuilder builder) { return(AddFluentValidation(builder, opt => { })); }
public static IKledexServiceBuilder AddCosmosSqlStore(this IKledexServiceBuilder builder, IConfiguration configuration) { return(AddCosmosSqlStore(builder, configuration, opt => { })); }
public static IKledexServiceBuilder AddServiceBus(this IKledexServiceBuilder builder) { return(AddServiceBus(builder, opt => { })); }
public static IKledexServiceBuilder AddSqlServerStore(this IKledexServiceBuilder builder) { return(AddSqlServerStore(builder, opt => { })); }
public static IKledexServiceBuilder AddRabbitMQ(this IKledexServiceBuilder builder) { return(AddRabbitMQ(builder, opt => { })); }
public static IKledexServiceBuilder AddFluentValidationProvider(this IKledexServiceBuilder builder) { builder.Services.AddTransient <IValidationProvider, FluentValidationProvider>(); return(builder); }
public static IKledexServiceBuilder AddCosmosDbMongoDbProvider(this IKledexServiceBuilder builder) { return(AddCosmosDbMongoDbProvider(builder, opt => { })); }
public static IKledexServiceBuilder AddMemoryCache(this IKledexServiceBuilder builder) { return(AddMemoryCache(builder, opt => { })); }