public CosmosContainerProvider( CosmosDataStoreConfiguration cosmosDataStoreConfiguration, IOptionsMonitor <CosmosCollectionConfiguration> collectionConfiguration, ICosmosClientInitializer cosmosClientInitializer, ILogger <CosmosContainerProvider> logger, IEnumerable <ICollectionInitializer> collectionInitializers) { EnsureArg.IsNotNull(cosmosDataStoreConfiguration, nameof(cosmosDataStoreConfiguration)); EnsureArg.IsNotNull(collectionConfiguration, nameof(collectionConfiguration)); EnsureArg.IsNotNull(cosmosClientInitializer, nameof(cosmosClientInitializer)); EnsureArg.IsNotNull(logger, nameof(logger)); EnsureArg.IsNotNull(collectionInitializers, nameof(collectionInitializers)); _logger = logger; string collectionId = collectionConfiguration.Get(Constants.CollectionConfigurationName).CollectionId; _client = cosmosClientInitializer.CreateCosmosClient(cosmosDataStoreConfiguration); _initializationOperation = new RetryableInitializationOperation( () => cosmosClientInitializer.InitializeDataStore(_client, cosmosDataStoreConfiguration, collectionInitializers)); _container = new Lazy <Container>(() => cosmosClientInitializer.CreateFhirContainer( _client, cosmosDataStoreConfiguration.DatabaseId, collectionId)); }
public DocumentClientProvider( CosmosDataStoreConfiguration cosmosDataStoreConfiguration, IDocumentClientInitializer documentClientInitializer, ILogger <DocumentClientProvider> logger) { EnsureArg.IsNotNull(cosmosDataStoreConfiguration, nameof(cosmosDataStoreConfiguration)); EnsureArg.IsNotNull(documentClientInitializer, nameof(documentClientInitializer)); EnsureArg.IsNotNull(logger, nameof(logger)); _documentClient = documentClientInitializer.CreateDocumentClient(cosmosDataStoreConfiguration); _initializationOperation = new RetryableInitializationOperation( () => documentClientInitializer.InitializeDataStore(_documentClient, cosmosDataStoreConfiguration)); }