コード例 #1
0
        private void _postRelateGroupcontent(OOPEZZ_DBEntities db, BotMessageReceivedRequest mess, List <String> strques, QUESTION linkedques = null)
        {
            char[] charac = { '-' };
            List <GROUP_CONTENT> gcontents = db.GROUP_CONTENT.ToList();
            List <GROUP_CONTENT> gresult   = new List <GROUP_CONTENT>();

            foreach (GROUP_CONTENT goupcontent in gcontents)
            {
                List <String> gStrStr      = Ulti.replaceAEIOU(goupcontent.NAME.ToLower()).Split(charac).ToList();
                int           resultLength = Ulti.LevenshteinDistance(strques, gStrStr);
                if (Ulti.calculateResultisAvaiable(resultLength, gStrStr))
                {
                    gresult.Add(goupcontent);
                }
            }
            //Tìm xong  => post


            //post group content
            if (gresult.Count > 0)
            {
                String json;
                foreach (GROUP_CONTENT gcontent in gresult)
                {
                    json = fbTemplate.ButtonTemplate(mess.sender.id, "Nội dung tương tự :" + gcontent.NAME, new List <ResponseButtons> {
                        new ResponseButtons()
                        {
                            type    = "postback",
                            title   = "Xem",
                            payload = "GROUPCONTENT_" + gcontent.PK_SEQ
                        }
                    });
                    _post(json);
                }
            }
            else
            {
                if (linkedques != null)
                {
                    string json = fbTemplate.SimpleTextTemplate(mess.sender.id, "Câu hỏi tương tự ");
                    _post(json);
                    _postQuestion(db, linkedques, mess);
                }
                else
                {
                    _postNoQuest(mess);
                }
            }
        }
コード例 #2
0
        private void _question(OOPEZZ_DBEntities db, BotMessageReceivedRequest botMessage)
        {
            String mess = botMessage.message.text.ToLower();

            mess = Ulti.removeCommonstr(mess);
            mess = mess.Trim();
            mess = Ulti.replaceKeyword(db, mess);
            mess = Ulti.replaceAEIOU(mess);
            char[]        charac  = { '-' };
            List <String> strques = mess.Split(charac).ToList();


            List <QUESTION> questionlist = db.QUESTION.ToList();
            int             maxCompare   = 10000;
            QUESTION        result       = null;

            foreach (QUESTION question in questionlist)
            {
                List <String> ques         = Ulti.replaceAEIOU(question.QUESTION_TEXT.ToLower()).Split(charac).ToList();
                int           resultLength = Ulti.LevenshteinDistance(strques, ques);
                if (resultLength < maxCompare)
                {
                    maxCompare = resultLength;
                    result     = question;
                }
            }

            if (!Ulti.calculateResultisAvaiable(maxCompare, Ulti.replaceAEIOU(result.QUESTION_TEXT.ToLower()).Split(charac).ToList()) || result == null)
            {
                _postRelateGroupcontent(db, botMessage, strques);
            }
            else
            {
                _postRelateGroupcontent(db, botMessage, strques, result);
            }
        }