public void GivenBlockChain_WhenContainerIsMemory_ShouldRoundTrip() { const string issuer = "*****@*****.**"; const string issuer2 = "*****@*****.**"; const string zipPath = "$block"; var date = DateTime.UtcNow; var issuerSignature = new PrincipalSignature(issuer, issuer, "*****@*****.**"); var issuerSignature2 = new PrincipalSignature(issuer2, issuer2, "*****@*****.**"); BlockChain blockChain = new BlockChainBuilder() .SetPrincipleId(issuer) .Build() .Sign(x => issuerSignature); var payload = new Payload { Name = "Name1", Value = 2, Price = 10.5f }; var payload2 = new Payload2 { Last = "Last", Current = date, Author = "test" }; blockChain.Add(payload, issuer); blockChain.Add(payload2, issuer); var getSignature = (string kid) => { return(kid switch { issuer => issuerSignature, issuer2 => issuerSignature2, _ => throw new ArgumentException($"Invalid kid={kid}"), });
public void GivenBlockChain_TwoTypes_ShouldVerify() { const string issuer = "*****@*****.**"; const string issuer2 = "*****@*****.**"; var now = UnixDate.UtcNow; var date = DateTime.UtcNow; var issuerSignature = new PrincipalSignature(issuer, issuer, "*****@*****.**"); var issuerSignature2 = new PrincipalSignature(issuer2, issuer2, "*****@*****.**"); BlockChain blockChain = new BlockChainBuilder() .SetPrincipleId(issuer) .Build(); var payload = new Payload { Name = "Name1", Value = 2, Price = 10.5f }; var payload2 = new Payload2 { Last = "Last", Current = date, Author = "test" }; blockChain.Add(payload, issuer); blockChain.Add(payload2, issuer2); var getSignature = (string kid) => kid switch { issuer => issuerSignature, issuer2 => issuerSignature2, _ => throw new ArgumentException($"Invalid kid={kid}"), }; blockChain = blockChain.Sign(getSignature); blockChain.Validate(getSignature); // Get payload of data block blockChain.Blocks.Count.Should().Be(3); DataBlock receiveBlock = blockChain.Blocks[1].DataBlock; TestBlockNode(receiveBlock, "Payload", "1"); Payload p1 = receiveBlock.Data.ToObject <Payload>().VerifyNotNull("payload failed"); (payload == p1).Should().BeTrue(); DataBlock receiveBlock2 = blockChain.Blocks[2].DataBlock; TestBlockNode(receiveBlock2, "Payload2", "2"); Payload2 p2 = receiveBlock2.Data.ToObject <Payload2>().VerifyNotNull("payload2 failed"); (payload2 == p2).Should().BeTrue(); }
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> 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> 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)); }