Example #1
0
    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}"),
            });
Example #2
0
        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();
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }
Example #5
0
        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));
        }