async Task CreateDocument(string collectionName, string content) { Thread.Sleep(500); // Try to avoid error 429 (Too Many Requests) without increasing the pricing tier. Don´t do this in a real app. string uri = $"{_EndpointUrl}dbs/{_DatabaseId}/colls/{collectionName}/docs"; using (var _httpClient = new HttpClient()) { _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); _httpClient.DefaultRequestHeaders.Add("x-ms-date", utc_date); _httpClient.DefaultRequestHeaders.Add("x-ms-version", "2015-08-06"); string verb = "POST"; string resourceType = "docs"; string resourceLink = $"dbs/{_DatabaseId}/colls/{collectionName}"; string authHeader = DocumentAuthorization.GenerateMasterKeyAuthorizationSignature(verb, resourceLink, resourceType, _Key, "master", "1.0", utc_date); _httpClient.DefaultRequestHeaders.Remove("authorization"); _httpClient.DefaultRequestHeaders.Add("authorization", authHeader); var response = await _httpClient.PostAsync(new Uri(uri), new StringContent(content, Encoding.UTF8, "application/json")); response.EnsureSuccessStatusCode(); } }
async Task <bool> ExistsDatabase() { string baseUri = $"{_EndpointUrl}dbs/{_DatabaseId}"; using (var _httpClient = new HttpClient()) { _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); _httpClient.DefaultRequestHeaders.Add("x-ms-date", utc_date); _httpClient.DefaultRequestHeaders.Add("x-ms-version", "2015-08-06"); string verb = "GET"; string resourceType = "dbs"; string resourceLink = "dbs/" + _DatabaseId; string authHeader = DocumentAuthorization.GenerateMasterKeyAuthorizationSignature(verb, resourceLink, resourceType, _Key, "master", "1.0", utc_date); _httpClient.DefaultRequestHeaders.Remove("authorization"); _httpClient.DefaultRequestHeaders.Add("authorization", authHeader); var response = await _httpClient.GetAsync(new Uri(baseUri)); if (response.StatusCode == System.Net.HttpStatusCode.OK) { return(true); } } return(false); }
async Task CreateCollection(string collectionName) { string uri = $"{_EndpointUrl}dbs/{_DatabaseId}/colls"; using (var _httpClient = new HttpClient()) { _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); _httpClient.DefaultRequestHeaders.Add("x-ms-date", utc_date); _httpClient.DefaultRequestHeaders.Add("x-ms-version", "2015-08-06"); string verb = "POST"; string resourceType = "colls"; string resourceLink = $"dbs/{_DatabaseId}/colls"; string resourceId = $"dbs/{_DatabaseId}"; string authHeader = DocumentAuthorization.GenerateMasterKeyAuthorizationSignature(verb, resourceId, resourceType, _Key, "master", "1.0", utc_date); _httpClient.DefaultRequestHeaders.Remove("authorization"); _httpClient.DefaultRequestHeaders.Add("authorization", authHeader); var content = JsonConvert.SerializeObject(new { id = collectionName }); var response = await _httpClient.PostAsync(uri, new StringContent(content, Encoding.UTF8, "application/json")); response.EnsureSuccessStatusCode(); } }