示例#1
0
        /// <summary>
        /// Get document db settings from app config.
        /// </summary>
        /// <param name="config">Document Db settings config, containing information like region, environment, access type etc.</param>
        /// <returns>The document db settings</returns>
        public Task <DocumentDbSettings> GetSettingsAsync(DocumentDbSettingsConfig config = null)
        {
            string endpoint = ConfigurationManager.AppSettings["DocumentDbEndpoint"];
            string key      = ConfigurationManager.AppSettings["DocumentDbKey"];

            return(Task.FromResult(new DocumentDbSettings(endpoint, key)));
        }
示例#2
0
        /// <summary>
        /// Document db settings class.
        /// </summary>
        protected DocumentDbSettings(string endpoint, DocumentDbSettingsConfig config = null)
        {
            Code.ExpectsNotNullOrWhiteSpaceArgument(endpoint, nameof(endpoint), TaggingUtilities.ReserveTag(0x2381b146 /* tag_961fg */));

            Endpoint = new Uri(endpoint);
            Config   = config;
        }
示例#3
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="endpoint">Document db endpoint.</param>
        /// <param name="key">Document db key.</param>
        /// <param name="config">Document db settings config.</param>
        public DocumentDbSettings(string endpoint, string key, DocumentDbSettingsConfig config = null)
        {
            Code.ExpectsNotNullOrWhiteSpaceArgument(endpoint, nameof(endpoint), TaggingUtilities.ReserveTag(0x2381b147 /* tag_961fh */));
            Code.ExpectsNotNullOrWhiteSpaceArgument(key, nameof(key), TaggingUtilities.ReserveTag(0x2381b148 /* tag_961fi */));

            Endpoint = new Uri(endpoint);
            Key      = key;
            Config   = config;
        }
示例#4
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="clientFactory">Document db client factory.</param>
        /// <param name="config">Document db settings config.</param>
        public DocumentDbAdapter(IDocumentClientFactory clientFactory, DocumentDbSettingsConfig config = null)
        {
            Code.ExpectsArgument(clientFactory, nameof(clientFactory), TaggingUtilities.ReserveTag(0x2381b1dc /* tag_961h2 */));

            DocumentClientFactory = clientFactory;

            m_DocumentClient = new Lazy <Task <IDocumentClient> >(
                () => DocumentClientFactory.GetDocumentClientAsync(config),
                LazyThreadSafetyMode.ExecutionAndPublication);
        }
示例#5
0
        /// <summary>
        /// Gets document client.
        /// </summary>
        /// <param name="config">Document Db settings config, containing information like region, environment, access type etc.</param>
        /// <returns>The IDocumentClient interface.</returns>
        public async Task <IDocumentClient> GetDocumentClientAsync(DocumentDbSettingsConfig config = null)
        {
            DocumentDbSettings settings = await DocumentDbAdapter.ExecuteAndLogAsync(
                0, () => m_DocumentDbSettingsProvider.GetSettingsAsync(config)).ConfigureAwait(false);

            DocumentClient client = new DocumentClient(settings.Endpoint, settings.Key);

            await DocumentDbAdapter.ExecuteAndLogAsync(
                0,
                async() =>
            {
                await client.OpenAsync().ConfigureAwait(false);

                return(true);
            }).ConfigureAwait(false);

            return(client);
        }