public async Task <string> getDictToExtension(string contain) { bool isVN = false; string userid = User.Identity.GetUserId(); contain = contain.ToString().ToLower().Trim(); DictCache dictTemp = new DictCache(); //Tim trong cache nếu ko có thì request crawler try { dictTemp = _dictCache.findWordCache(contain); } catch (Exception e) { } //post // bool isSaveCached = true; DictCache cacheDict; OxfordDict dict = new OxfordDict(); GoogleTrans googleTransJson = new GoogleTrans(); GoogleTrans detailVietnamese = new GoogleTrans(); //Explain main of letter MessJson messExplaintion = new MessJson(); //Pron MessJson messPron = new MessJson(); //Vietnamese MessJson messVietnamese = new MessJson(); // ChatfuelJson hello = new ChatfuelJson(); AttachmentJson sound = new AttachmentJson(); sound.attachment.type = "audio"; Attachment2 attach = new Attachment2(); if (contain.LastOrDefault() == '.') { messPron.text = ""; hello.messages.Add(messPron); return(JsonConvert.SerializeObject(hello)); } Payload2 payload = new Payload2(); // if (dictTemp != null) { messPron.text = dictTemp.Pron; messExplaintion.text = dictTemp.MeanEn; messVietnamese.text = dictTemp.MeanVi; sound.attachment.payload.url = dictTemp.SoundUrl; } else { int size = contain.Split(' ').Length; if (size > 1) { isSaveCached = false; googleTransJson = await _clientDictionaryService.startGoogleTrans(contain); hello.strVietnamese = googleTransJson.src; if (googleTransJson.src == "vi") { isVN = true; } messExplaintion.text = googleTransJson.sentences[0].trans; } else { try { dict = await _clientDictionaryService.startCrawlerOxford(contain); messPron.text = dict.m_Pron; messExplaintion.text = dict.m_Explanation.First().m_UseCase; } catch { isSaveCached = false; messExplaintion.text = contain; } detailVietnamese = await _clientDictionaryService.startGoogleDetailTrans(contain); hello.strVietnamese = detailVietnamese.src; if (detailVietnamese.src == "vi") { isVN = true; } try { messVietnamese.text = detailVietnamese.dict.First().pos + ": "; foreach (var item in detailVietnamese.dict.First().terms) { messVietnamese.text += item + ", "; } } catch { isSaveCached = false; messVietnamese.text = detailVietnamese.sentences.FirstOrDefault().trans; } } sound.attachment.payload.url = dict.m_SoundUrl; //Add database cacheDict = new DictCache(); cacheDict.VocaID = contain; cacheDict.Pron = messPron.text; cacheDict.MeanEn = messExplaintion.text; cacheDict.MeanVi = messVietnamese.text; cacheDict.SoundUrl = dict.m_SoundUrl; _dictCache.Add(cacheDict); if (isSaveCached) { _dictCache.Save(); } dictTemp = cacheDict; } DetailOurWord detailWord = _detailOutWordService.findDetailOurWord(userid, dictTemp.Id); if (detailWord == null) { hello.Selected = false; } else { hello.Selected = true; } hello.messages.Add(messPron); hello.messages.Add(messVietnamese); hello.messages.Add(messExplaintion); hello.messages.Add(sound); if (isVN) { return(null); } return(JsonConvert.SerializeObject(hello)); }
public async Task <string> searchDictViaBot(string contain, string id = "1554844547918927", string userid = null) { bool multiLetters = false; contain = contain.ToString().ToLower().Trim(); //Tim trong cache nếu ko có thì request crawler var dictTemp = _dictCache.findWordCache(contain); //post // bool isSaveCached = true; DictCache cacheDict = new DictCache(); OxfordDict dict = new OxfordDict(); GoogleTrans googleTransJson = new GoogleTrans(); GoogleTrans detailVietnamese = new GoogleTrans(); //Explain main of letter MessJson messExplaintion = new MessJson(); //Pron MessJson messPron = new MessJson(); //Vietnamese MessJson messVietnamese = new MessJson(); // ChatfuelJson hello = new ChatfuelJson(); AttachmentJson sound = new AttachmentJson(); sound.attachment.type = "audio"; Attachment2 attach = new Attachment2(); //Json is returned Customer AttachmentJson soundDic = new AttachmentJson(); MessJson messExplaintionDict = new MessJson(); MessJson resultGoogle = new MessJson(); // JsonMessengerText jsonTextMessenger = new JsonMessengerText(); jsonTextMessenger.recipient.id = id; JsonMessengerText jsonSoundMessenger = new JsonMessengerText(); jsonSoundMessenger.recipient.id = id; messExplaintionDict.text += "*" + ToTitleCase(contain) + "*"; Payload2 payload = new Payload2(); // if (dictTemp != null) { messPron.text = dictTemp.Pron; messExplaintion.text = dictTemp.MeanEn; messVietnamese.text = dictTemp.MeanVi; sound.attachment.payload.url = dictTemp.SoundUrl; // messExplaintionDict.text += "\r\n" + dictTemp.Pron; messExplaintionDict.text += "\r\n" + dictTemp.MeanEn; messExplaintionDict.text += "\r\n" + dictTemp.MeanVi; soundDic.attachment.payload.url = dictTemp.SoundUrl; } else { int size = contain.Split(' ').Length; if (size > 1) { multiLetters = true; googleTransJson = await _clientDictionaryService.startGoogleTrans(contain); foreach (var sentence in googleTransJson.sentences) { messExplaintion.text += sentence.trans; resultGoogle.text += sentence.trans; } // resultGoogle.text = googleTransJson.sentences[0].trans; //messExplaintionDict.text +="\r\n" + googleTransJson.sentences[0].trans; } else { try { dict = await _clientDictionaryService.startCrawlerOxford(contain); messPron.text = dict.m_Pron; messExplaintion.text = dict.m_Explanation.First().m_UseCase; // messExplaintionDict.text += "\r\n" + dict.m_Pron; messExplaintionDict.text += "\r\n" + dict.m_Explanation.First().m_UseCase; } catch { isSaveCached = false; messExplaintion.text = contain; messExplaintionDict.text += "\r\n" + contain; } try { detailVietnamese = await _clientDictionaryService.startGoogleDetailTrans(contain); } catch { detailVietnamese = null; } try { messVietnamese.text = detailVietnamese.dict.First().pos + ": "; foreach (var item in detailVietnamese.dict.First().terms) { messVietnamese.text += item + ", "; } messExplaintionDict.text += "\r\n" + messVietnamese.text; } catch { isSaveCached = false; messVietnamese.text = detailVietnamese.sentences.FirstOrDefault().trans; messExplaintionDict.text += "\r\n" + detailVietnamese.sentences.FirstOrDefault().trans; } } sound.attachment.payload.url = dict.m_SoundUrl; soundDic.attachment.payload.url = dict.m_SoundUrl; //Add database cacheDict = new DictCache(); cacheDict.VocaID = contain; cacheDict.Pron = messPron.text; cacheDict.MeanEn = messExplaintion.text; cacheDict.MeanVi = messVietnamese.text; cacheDict.SoundUrl = dict.m_SoundUrl; _dictCache.Add(cacheDict); if (isSaveCached) { _dictCache.Save(); } dictTemp = cacheDict; } //DetailOurWord detailWord = _detailOutWordService.findDetailOurWord(userid, dictTemp.Id); //if (detailWord == null) //{ // hello.Selected = false; //} //else //{ // hello.Selected = true; //} hello.messages.Add(messPron); hello.messages.Add(messVietnamese); hello.messages.Add(messExplaintion); hello.messages.Add(sound); try { hello.strVoca = ToTitleCase(contain); ApplicationUser currentUser = _service.listUserID().Where(x => x.Id_Messenger == id).FirstOrDefault(); NotificationHub.sendNoti(currentUser.Email, JsonConvert.SerializeObject(hello)); } catch { } if (multiLetters) { jsonTextMessenger.message = messExplaintionDict; jsonSoundMessenger.message = resultGoogle; PostRaw("", JsonConvert.SerializeObject(jsonTextMessenger)); PostRaw("", JsonConvert.SerializeObject(jsonSoundMessenger)); return(""); } jsonTextMessenger.message = messExplaintionDict; jsonSoundMessenger.message = soundDic; PostRaw("", JsonConvert.SerializeObject(jsonTextMessenger)); PostRaw("", JsonConvert.SerializeObject(jsonSoundMessenger)); return(JsonConvert.SerializeObject(hello)); }
public async Task <string> callChatBot(string contain, string id, string userid) { contain = contain.ToString().ToLower().Trim(); //Tim trong cache nếu ko có thì request crawler var dictTemp = _dictCache.findWordCache(contain); //post // bool isSaveCached = true; DictCache cacheDict = new DictCache(); OxfordDict dict = new OxfordDict(); GoogleTrans googleTransJson = new GoogleTrans(); GoogleTrans detailVietnamese = new GoogleTrans(); //Explain main of letter MessJson messExplaintion = new MessJson(); //Pron MessJson messPron = new MessJson(); //Vietnamese MessJson messVietnamese = new MessJson(); // ChatfuelJson hello = new ChatfuelJson(); AttachmentJson sound = new AttachmentJson(); sound.attachment.type = "audio"; Attachment2 attach = new Attachment2(); if (contain.LastOrDefault() == '.') { messPron.text = ""; hello.messages.Add(messPron); return(JsonConvert.SerializeObject(hello)); } Payload2 payload = new Payload2(); // if (dictTemp != null) { messPron.text = dictTemp.Pron; messExplaintion.text = dictTemp.MeanEn; messVietnamese.text = dictTemp.MeanVi; sound.attachment.payload.url = dictTemp.SoundUrl; } else { int size = contain.Split(' ').Length; if (size > 1) { googleTransJson = await _clientDictionaryService.startGoogleTrans(contain); messExplaintion.text = googleTransJson.sentences[0].trans; } else { try { dict = await _clientDictionaryService.startCrawlerOxford(contain); messPron.text = dict.m_Pron; messExplaintion.text = dict.m_Explanation.First().m_UseCase; } catch { isSaveCached = false; messExplaintion.text = contain; } detailVietnamese = await _clientDictionaryService.startGoogleDetailTrans(contain); try { messVietnamese.text = detailVietnamese.dict.First().pos + ": "; foreach (var item in detailVietnamese.dict.First().terms) { messVietnamese.text += item + ", "; } } catch { isSaveCached = false; messVietnamese.text = detailVietnamese.sentences.FirstOrDefault().trans; } } sound.attachment.payload.url = dict.m_SoundUrl; //Add database cacheDict = new DictCache(); cacheDict.VocaID = contain; cacheDict.Pron = messPron.text; cacheDict.MeanEn = messExplaintion.text; cacheDict.MeanVi = messVietnamese.text; cacheDict.SoundUrl = dict.m_SoundUrl; _dictCache.Add(cacheDict); if (isSaveCached) { _dictCache.Save(); } dictTemp = cacheDict; } DetailOurWord detailWord = _detailOutWordService.findDetailOurWord(userid, dictTemp.Id); if (detailWord == null) { hello.Selected = false; } else { hello.Selected = true; } hello.messages.Add(messPron); hello.messages.Add(messVietnamese); hello.messages.Add(messExplaintion); hello.messages.Add(sound); try { hello.strVoca = ToTitleCase(contain); ApplicationUser currentUser = _service.listUserID().Where(x => x.Id_Messenger == id).FirstOrDefault(); NotificationHub.sendNoti(currentUser.Email, JsonConvert.SerializeObject(hello)); } catch { } return(JsonConvert.SerializeObject(hello)); }