void ProcessCommonResponse(string message, out BotResponse response)
 {
     response      = new BotResponse();
     response.From = message;
     response.Text = string.Format("{0}", BotTextHelper.GetCommonText(message));
     response.Rank = ResponseRank.Normal;
     object[] parameter = new object[] { response };
     response.RtfText = RtfDocumentHelper.GetRtfText(parameter);
 }
 void ProcessDefaultResponse(string messageText, out BotResponse response)
 {
     response      = new BotResponse();
     response.From = messageText;
     response.Text = string.Format("{0}", BotTextHelper.GetRandomText());
     response.Rank = ResponseRank.Low;
     object[] parameter = new object[] { response };
     response.RtfText = RtfDocumentHelper.GetRtfText(parameter);
 }
 void ProcessChatResponse(string messageText, out BotResponse response)
 {
     try
     {
         ChatResult data = SimlBot.Instance.Chat(messageText);
         if (data.Success && !string.IsNullOrEmpty(data.BotMessage))
         {
             response      = new BotResponse();
             response.From = messageText;
             response.Text = string.Format("{0}", data.BotMessage);
             response.Rank = ResponseRank.Normal;
             object[] parameter = new object[] { response, data.Data.Current };
             response.RtfText = RtfDocumentHelper.GetRtfText(parameter);
             return;
         }
     }
     catch (Exception) { }
     response = null;
 }
 void ProcessSynSetResultResponse(string messageText, out BotResponse response)
 {
     try
     {
         WordNetPlugin wnPlugin = VirtualAssistant.Instance.Plugins.GetPluginByType <WordNetPlugin>();
         wnPlugin.QueryName = messageText;
         var synSetResult = wnPlugin.GenerateSynSetResult();
         if (synSetResult != null)
         {
             response      = new BotResponse();
             response.From = messageText;
             response.Text = string.Format("{0}", synSetResult.CommonSynSet);
             response.Rank = ResponseRank.Normal;
             object[] parameter = new object[] { synSetResult, wnPlugin.GenerateSuggestionResult(), wnPlugin.GenerateThesResult() };
             response.RtfText = RtfDocumentHelper.GetRtfText(parameter);
             return;
         }
     }
     catch (Exception) { }
     response = null;
 }
        BotResponse GenerateResponse(Syn.VA.Interaction.Message message, ChatResult eventResult)
        {
            int count = 1;

            int[]       formation = { 1, 2, 3, 4 };
            BotResponse response  = null;

            if (message.Type == Syn.VA.Interaction.MessageType.EventMessage)
            {
                response      = new BotResponse();
                response.From = string.Empty;
                response.Hint = string.Empty;
                response.Rank = ResponseRank.Normal;
                response.Text = eventResult.BotMessage;
                object[] parameter = new object[] { response };
                response.RtfText = RtfDocumentHelper.GetRtfText(parameter);
                return(response);
            }

            while (response == null || string.IsNullOrEmpty(response.Text))
            {
                int option = (formation.Length >= count) && (count >= 1) ? formation[count - 1] : 100;
                switch (option)
                {
                case 1: ProcessCommonResponse(message.Text, out response); break;

                case 2: ProcessQuotationResultResponse(message.Text, out response); break;

                case 3: ProcessChatResponse(message.Text, out response); break;

                case 4: ProcessSynSetResultResponse(message.Text, out response); break;

                default: ProcessDefaultResponse(message.Text, out response); break;
                }
                count++;
            }
            return(response);
        }
 void ProcessQuotationResultResponse(string message, out BotResponse response)
 {
     try
     {
         KJBiblePlugin kjPlugin = VirtualAssistant.Instance.Plugins.GetPluginByType <KJBiblePlugin>();
         kjPlugin.QueryName      = message;
         kjPlugin.QueryTestament = BibleNet.KJV.TestamentType.Old | BibleNet.KJV.TestamentType.New;
         kjPlugin.IsQueryLimited = false;
         var quotationResult = kjPlugin.GetQuotationResult();
         if (quotationResult != null)
         {
             response      = new BotResponse();
             response.From = message;
             response.Text = string.Format("{0}", quotationResult.CommonQuotation);
             response.Rank = ResponseRank.Normal;
             object[] parameter = new object[] { quotationResult };
             response.RtfText = RtfDocumentHelper.GetRtfText(parameter);
             return;
         }
     }
     catch (Exception) { }
     response = null;
 }