/// <summary> /// Extension method that registers integrations related classes to the DI container /// </summary> /// <param name="services">The Microsoft.Extensions.DependencyInjection.IServiceCollection for adding services.</param> /// <param name="configuration">The configuration for the project</param> public static IServiceCollection RegisterIntegrations(this IServiceCollection services, IConfiguration configuration) { ConnectionPolicy connectionPolicy = new ConnectionPolicy { ConnectionMode = ConnectionMode.Gateway, ConnectionProtocol = Protocol.Https, }; AzureCosmosDbSettings azureCosmosDb = configuration.GetSection("Integrations").Get <Integrations>().AzureCosmosDbSettings; services.AddSingleton <IDocumentClient>(x => { Uri endPointUri = new Uri(azureCosmosDb.EndpointUri); DocumentClient documentClient = new DocumentClient(endPointUri, azureCosmosDb.MasterKey, connectionPolicy); documentClient.OpenAsync().GetAwaiter().GetResult(); documentClient.CreateDatabaseIfNotExistsAsync(new Database { Id = azureCosmosDb.Database }).GetAwaiter().GetResult(); return(documentClient); }); services.AddTransient <ReleaseRepository>(); services.AddTransient <DeploymentRepository>(); return(services); }
public CosmosDbController(IOptions <AzureCosmosDbSettings> cosmosDbSettings) { _cosmosDbSettings = cosmosDbSettings.Value; }