コード例 #1
0
        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);
                }
        }
コード例 #2
0
        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);
                }
        }