public async Task <Container> GetContainerAsync(IDocumentDbSettings settings) { var key = settings.DocumentDbRepositoryEndpointUrl + settings.DocumentDbRepositoryDatabaseId; if (_containers.ContainsKey(key)) { return(_containers[key]); } lock (_containers) { if (_containers.ContainsKey(key)) { return(_containers[key]); } _logger.Debug(Common.LoggerContext, "Creating DocumentDb Client for {0}", settings.DocumentDbRepositoryEndpointUrl); settings.CosmosClientOptions.RequestTimeout = new TimeSpan(); var client = new CosmosClient(settings.DocumentDbRepositoryEndpointUrl, settings.DocumentDbRepositoryAuthKey, settings.CosmosClientOptions); var database = client.GetDatabase(settings.DocumentDbRepositoryDatabaseId); var container = database.GetContainer(settings.DocumentDbRepositoryCollectionId); _containers[key] = container; return(_containers[key]); } }
public DocumentDbWritableReadModelRepository( IDocumentDbSettings settings, IReliableReadWriteDocumentClientFactory containerFactory, ILogger logger, ITelemetryLogger telemetryLogger) : base(settings, containerFactory, logger, telemetryLogger) { _telemetryLogger = telemetryLogger; }
public DocumentDbReadModelRepository( IDocumentDbSettings settings, IReliableReadWriteDocumentClientFactory clientFactory, Core.ILogger logger, ITelemetryLogger telemetryLogger) { Settings = settings; ClientFactory = clientFactory; Logger = logger ?? throw new ArgumentNullException(nameof(logger)); _telemetryLogger = telemetryLogger; }
public async Task <DocumentClient> GetClientAsync(IDocumentDbSettings settings) { var key = settings.DocumentDbRepositoryEndpointUrl + settings.DocumentDbRepositoryDatabaseId; if (!_clients.ContainsKey(key)) { _logger.Debug(Common.LoggerContext, "Creating DocumentDb Client for {0}", settings.DocumentDbRepositoryEndpointUrl); var connectionPolicy = new ConnectionPolicy(); if (settings.DocumentDbRepositoryEndpointUrl.StartsWith("https://localhost")) { connectionPolicy.EnableEndpointDiscovery = false; } var client = new DocumentClient(new Uri(settings.DocumentDbRepositoryEndpointUrl), settings.DocumentDbRepositoryAuthKey, connectionPolicy); await client.OpenAsync(); await SpinUpDatabaseAsync(client, settings.DocumentDbRepositoryDatabaseId); _clients[key] = client; return(client); } return(_clients[key]); }
public DocumentDbViewModelRepository(IDocumentDbSettings settings, IDocumentDbClientFactory clientFactory, ILogger logger) { _settings = settings; _clientFactory = clientFactory; _logger = logger; }
public DocumentDbWritableViewModelRepository(IDocumentDbSettings settings, IDocumentDbClientFactory clientFactory, ILogger logger) : base(settings, clientFactory, logger) { }