/// <summary> /// Initializes a new instance of the <see cref="CosmosDataStore"/> class. /// </summary> /// <param name="documentClient"> /// A function that returns an <see cref="IDocumentClient"/>. /// Note that this is a function so that the lifetime of the instance is not directly controlled by the IoC container. /// </param> /// <param name="cosmosDataStoreConfiguration">The data store configuration</param> /// <param name="cosmosDocumentQueryFactory">The factory used to create the document query.</param> /// <param name="retryExceptionPolicyFactory">The retry exception policy factory.</param> /// <param name="logger">The logger instance.</param> public CosmosDataStore( IScoped <IDocumentClient> documentClient, CosmosDataStoreConfiguration cosmosDataStoreConfiguration, ICosmosDocumentQueryFactory cosmosDocumentQueryFactory, RetryExceptionPolicyFactory retryExceptionPolicyFactory, ILogger <CosmosDataStore> logger) { EnsureArg.IsNotNull(documentClient, nameof(documentClient)); EnsureArg.IsNotNull(cosmosDataStoreConfiguration, nameof(cosmosDataStoreConfiguration)); EnsureArg.IsNotNull(cosmosDocumentQueryFactory, nameof(cosmosDocumentQueryFactory)); EnsureArg.IsNotNull(retryExceptionPolicyFactory, nameof(retryExceptionPolicyFactory)); EnsureArg.IsNotNull(logger, nameof(logger)); _cosmosDocumentQueryFactory = cosmosDocumentQueryFactory; _retryExceptionPolicyFactory = retryExceptionPolicyFactory; _logger = logger; _documentClient = documentClient; _collectionUri = cosmosDataStoreConfiguration.RelativeCollectionUri; _upsertWithHistoryProc = new UpsertWithHistory(); _hardDelete = new HardDelete(); }
public CollectionInitializer( CosmosCollectionConfiguration cosmosCollectionConfiguration, CosmosDataStoreConfiguration cosmosDataStoreConfiguration, IUpgradeManager upgradeManager, RetryExceptionPolicyFactory retryExceptionPolicyFactory, ICosmosClientTestProvider clientTestProvider, ILogger <CollectionInitializer> logger) { EnsureArg.IsNotNull(cosmosCollectionConfiguration, nameof(cosmosCollectionConfiguration)); EnsureArg.IsNotNull(cosmosCollectionConfiguration.CollectionId, nameof(CosmosCollectionConfiguration.CollectionId)); EnsureArg.IsNotNull(clientTestProvider, nameof(clientTestProvider)); EnsureArg.IsNotNull(cosmosDataStoreConfiguration, nameof(cosmosDataStoreConfiguration)); EnsureArg.IsNotNull(upgradeManager, nameof(upgradeManager)); EnsureArg.IsNotNull(retryExceptionPolicyFactory, nameof(retryExceptionPolicyFactory)); EnsureArg.IsNotNull(logger, nameof(logger)); _cosmosCollectionConfiguration = cosmosCollectionConfiguration; _cosmosDataStoreConfiguration = cosmosDataStoreConfiguration; _upgradeManager = upgradeManager; _retryExceptionPolicyFactory = retryExceptionPolicyFactory; _clientTestProvider = clientTestProvider; _logger = logger; }
/// <summary> /// Initializes a new instance of the <see cref="CosmosFhirDataStore"/> class. /// </summary> /// <param name="containerScope"> /// A function that returns an <see cref="Container"/>. /// Note that this is a function so that the lifetime of the instance is not directly controlled by the IoC container. /// </param> /// <param name="cosmosDataStoreConfiguration">The data store configuration.</param> /// <param name="namedCosmosCollectionConfigurationAccessor">The IOptions accessor to get a named version.</param> /// <param name="cosmosQueryFactory">The factory used to create the document query.</param> /// <param name="retryExceptionPolicyFactory">The retry exception policy factory.</param> /// <param name="logger">The logger instance.</param> /// <param name="coreFeatures">The core feature configuration</param> public CosmosFhirDataStore( IScoped <Container> containerScope, CosmosDataStoreConfiguration cosmosDataStoreConfiguration, IOptionsMonitor <CosmosCollectionConfiguration> namedCosmosCollectionConfigurationAccessor, ICosmosQueryFactory cosmosQueryFactory, RetryExceptionPolicyFactory retryExceptionPolicyFactory, ILogger <CosmosFhirDataStore> logger, IOptions <CoreFeatureConfiguration> coreFeatures) { EnsureArg.IsNotNull(containerScope, nameof(containerScope)); EnsureArg.IsNotNull(cosmosDataStoreConfiguration, nameof(cosmosDataStoreConfiguration)); EnsureArg.IsNotNull(namedCosmosCollectionConfigurationAccessor, nameof(namedCosmosCollectionConfigurationAccessor)); EnsureArg.IsNotNull(cosmosQueryFactory, nameof(cosmosQueryFactory)); EnsureArg.IsNotNull(retryExceptionPolicyFactory, nameof(retryExceptionPolicyFactory)); EnsureArg.IsNotNull(logger, nameof(logger)); EnsureArg.IsNotNull(coreFeatures, nameof(coreFeatures)); _containerScope = containerScope; _cosmosDataStoreConfiguration = cosmosDataStoreConfiguration; _cosmosQueryFactory = cosmosQueryFactory; _retryExceptionPolicyFactory = retryExceptionPolicyFactory; _logger = logger; _coreFeatures = coreFeatures.Value; }