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