/// <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))); }
/// <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; }
/// <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; }
/// <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); }
/// <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); }