public static IServiceCollection AddImGalaxyESCosmosDBModule(this IServiceCollection services, Action <ICosmosDBConfigurations> configurations) => services.With(s => { var configs = new CosmosDBConfigurations().With(c => configurations(c)); s.RegisterConfigurations(configs) .RegisterProviders() .RegisterChangeTracker() .RegisterAggregateStore() .RegisterOperations() .RegisterRepositories() .RegisterSnapshotableRepositories(configs) .RegisterUnitOfWork() .RegisterCosmosDbConnection() .RegisterCosmosClient(); });
private static IServiceCollection RegisterConfigurations(this IServiceCollection services, CosmosDBConfigurations configurations) => services.AddSingleton <ICosmosDBConfigurations>(provider => configurations);