Пример #1
0
        private async Task UpdateKnowledgeBase(QnAMakerUpdateModel qnaMakerUpdateModel)
        {
            var uri     = $"{QnaMakerEndpoint}/knowledgebases/{KnowledgeBaseId}";
            var content = new StringContent(JsonConvert.SerializeObject(qnaMakerUpdateModel), Encoding.UTF8, "application/json");
            var method  = new HttpMethod("PATCH");
            var request = new HttpRequestMessage(method, uri)
            {
                Content = content
            };

            var client = new HttpClient();

            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", SubscriptionKey);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            await client.SendAsync(request);
        }
Пример #2
0
        private QnAMakerUpdateModel GenerateUpdateModelSingleItem(List <QnAItem> qnaItemsToSync, QnAMakerKnowledgeBaseModel currentKnowledgeBase, bool resetQuestions)
        {
            var qnaMakerUpdateModel = new QnAMakerUpdateModel
            {
                add    = new ItemsToAdd(),
                update = new ItemsToUpdate(),
                delete = new ItemsToDelete()
            };

            //var currentQnaItemIdsInKb = CurrentQnaItemIdsInKb(currentKnowledgeBase);
            //  id convert
            //var qnaItemsToAdd = qnaItemsToSync.Where(f => !currentQnaItemIdsInKb.Contains(f.ItemId.ToString())).ToList();
            //qnaMakerUpdateModel.add = GenerateItemsToAddModel(qnaItemsToAdd);

            //qnaMakerUpdateModel.delete = GenerateItemsToDeleteModel(currentKnowledgeBase.qnaList.ToList(), qnaItemsToSync);

            qnaMakerUpdateModel.update = GenerateItemsToUpdateModel(currentKnowledgeBase.qnaList.ToList(), qnaItemsToSync, resetQuestions);

            return(qnaMakerUpdateModel);
        }
Пример #3
0
        private QnAMakerUpdateModel GenerateUpdateModel(List <QnAItem> qnaItemsToSync, QnAMakerKnowledgeBaseModel currentKnowledgeBase)
        {
            var qnaMakerUpdateModel = new QnAMakerUpdateModel
            {
                add    = new ItemsToAdd(),
                update = new ItemsToUpdate(),
                delete = new ItemsToDelete()
            };

            var currentQnaItemIdsInKb = CurrentQnaItemIdsInKb(currentKnowledgeBase);

            var qnaItemsToAdd = qnaItemsToSync.Where(f => !currentQnaItemIdsInKb.Contains(f.ItemId)).ToList();

            qnaMakerUpdateModel.add = GenerateItemsToAddModel(qnaItemsToAdd);

            qnaMakerUpdateModel.delete = GenerateItemsToDeleteModel(currentKnowledgeBase.qnaList.ToList(), qnaItemsToSync);

            qnaMakerUpdateModel.update = GenerateItemsToUpdateModel(currentKnowledgeBase.qnaList.ToList(), qnaItemsToSync);

            return(qnaMakerUpdateModel);
        }