public QnAController(IErrorService errorService,
                      IQnAService qnaService,
                      IAIMLFileService aimlService) : base(errorService)
 {
     _qnaService  = qnaService;
     _aimlService = aimlService;
     _apiNLR      = new ApiQnaNLRService();
 }
示例#2
0
        public HttpResponseMessage CreateUpdateQnA(HttpRequestMessage request, ModuleQnAViewModel mdQnA)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;
                bool result = true;
                if (!ModelState.IsValid)
                {
                    response = request.CreateErrorResponse(HttpStatusCode.BadGateway, ModelState);
                    return response;
                }
                MdQuestion mdQuesDb = new MdQuestion();
                MdAnswer mdAnsDb = new MdAnswer();
                mdQuesDb.BotID = mdQnA.BotID;
                mdAnsDb.BotID = mdQnA.BotID;
                ApiQnaNLRService apiNLR = new ApiQnaNLRService();
                if (mdQnA.QuesID == null)
                {
                    // add Ques
                    mdQuesDb.UpdateModuleQuestion(mdQnA);
                    _moduleSearchEngineService.CreateQuestion(mdQuesDb);
                    _moduleSearchEngineService.Save();
                    // add Ans
                    mdAnsDb.UpdateModuleAnswer(mdQnA);
                    mdAnsDb.MQuestionID = mdQuesDb.ID;
                    _moduleSearchEngineService.CreateAnswer(mdAnsDb);
                }
                else
                {
                    // update Ques
                    mdQuesDb.UpdateModuleQuestion(mdQnA);
                    _moduleSearchEngineService.UpdateQuestion(mdQuesDb);
                    // update Ans
                    mdAnsDb.UpdateModuleAnswer(mdQnA);
                    _moduleSearchEngineService.UpdateAnswer(mdAnsDb);
                }
                _moduleSearchEngineService.Save();

                // api training
                string nlrQuesID = mdQuesDb.ID.ToString();
                string nlrQuesContentText = mdQuesDb.ContentText;
                string nlrAnsContentText = mdAnsDb.ContentText;
                string nlrAnsContentHTML = mdAnsDb.ContentHTML;
                string nlrAreaName = mdQnA.AreaName;
                string nlrAreaID = (String.IsNullOrEmpty(mdQnA.AreaID.ToString()) == true ? "" : mdQnA.AreaID.ToString());
                string nlrBotID = mdQnA.BotID.ToString();
                //apiNLR.AddQues(nlrQuesID, nlrQuesContentText, nlrAnsContentText, nlrAreaName, nlrAnsContentHTML);

                response = request.CreateResponse(HttpStatusCode.OK, result);
                return response;
            }));
        }