internal bool Update(UpdateRootobject toPublish) { if (null == toPublish.add?.qnaList && null == toPublish.delete?.ids && null == toPublish.update?.qnaList) { return(false); } if (null == this.details) { this.details = GetDetails(); this.knowledgeBaseId = this.details.id; } string host = $"https://{this.azureServicName}.{baseUrl}"; string service = "/qnamaker/v4.0"; string method = "/knowledgebases/{0}"; var method_with_id = String.Format(method, this.knowledgeBaseId); var uri = host + service + method_with_id; string requestBody = JsonConvert.SerializeObject(toPublish); using (var client = new HttpClient()) using (var request = new HttpRequestMessage()) { request.Method = new HttpMethod("PATCH"); request.RequestUri = new Uri(uri); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", ocpApimSubscriptionKey); request.Content = new StringContent(requestBody, Encoding.UTF8, "application/json"); var response = client.SendAsync(request).Result; WaitForOperationToComplete(client, response); return(response.IsSuccessStatusCode); } }
internal bool Replace(UpdateRootobject toPublish) { if (null == toPublish.add?.qnaList && null == toPublish.update?.qnaList) { return(false); } Qnalist[] list = null; if (null != toPublish.add?.qnaList && null != toPublish.update?.qnaList) { list = Combine(toPublish.add?.qnaList, toPublish.update?.qnaList); } else if (null != toPublish.add?.qnaList) { list = toPublish.add.qnaList; } else if (null != toPublish.update?.qnaList) { list = toPublish.update.qnaList; } Add newAdd = new Add(); newAdd.qnaList = list; string host = $"https://{this.endpoint}.api.cognitive.microsoft.com"; string service = "/qnamaker/v4.0"; string method = "/knowledgebases/{0}"; var method_with_id = String.Format(method, this.knowledgebase); var uri = host + service + method_with_id; string requestBody = JsonConvert.SerializeObject(newAdd); using (var client = new HttpClient()) using (var request = new HttpRequestMessage()) { request.Method = new HttpMethod("PUT"); request.RequestUri = new Uri(uri); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", ocpApimSubscriptionKey); request.Content = new StringContent(requestBody, Encoding.UTF8, "application/json"); var response = client.SendAsync(request).Result; return(response.IsSuccessStatusCode); } }