예제 #1
0
        public override AnswerItem Reply(MessageItem mItem)
        {
            var answerItem = new AnswerItem
            {
                Message = GetCommandIconUnicode()
            };

            try
            {
                if (string.IsNullOrWhiteSpace(mItem.TextOnly) || NextCmd == mItem.TextOnly)
                {
                    var learnUnit = ProcessLearn(mItem);
                    answerItem = ProcessNext(answerItem, learnUnit);
                }

                else if (mItem.TextOnly.StartsWith(EditCommand.EditCmd) ||
                         mItem.TextOnly.Contains(ImportCommand.SeparatorChar.ToString()))
                {
                    answerItem = EditCommand.Reply(mItem);
                }
                else
                {
                    answerItem = ProcessAnswer(answerItem, mItem);
                }
            }
            catch (Exception ex)
            {
                answerItem.Message += Environment.NewLine + ex.Message;
            }

            return(answerItem);
        }
예제 #2
0
        public override AnswerItem ProcessAnswer(AnswerItem previousAnswerItem, MessageItem mItem)
        {
            var checkResult = _studyProvider.AnswerWord(mItem.ChatId, mItem.TextOnly);

            previousAnswerItem.Picture = checkResult.WordStatistic.CardAll.ToGenerateImageResult(checkResult.Picture);
            previousAnswerItem.Message = (checkResult.Success ? "✅ " : "⛔️ ") + checkResult.WordStatistic;
            previousAnswerItem.Markup  = GetLearnMarkup(checkResult.WordStatistic.Id);

            return(previousAnswerItem);
        }
예제 #3
0
        public override AnswerItem ProcessNext(AnswerItem previousAnswerItem, LearnUnit lUnit)
        {
            var buttons = new List <InlineKeyboardButton[]>();

            foreach (var option in lUnit.Options)
            {
                var answer = string.Join("", option.Take(MaxAnswerLength));
                buttons.Add(new []
                {
                    new InlineKeyboardButton {
                        Text = answer, CallbackData = answer
                    }
                });
            }

            previousAnswerItem.Markup  = new InlineKeyboardMarkup(buttons);
            previousAnswerItem.Picture = lUnit.Picture;
            return(previousAnswerItem);
        }
예제 #4
0
 public abstract AnswerItem ProcessNext(AnswerItem previousAnswerItem, LearnUnit lUnit);
예제 #5
0
 public abstract AnswerItem ProcessAnswer(AnswerItem previousAnswerItem, MessageItem mItem);