public override AnswerItem ProcessNext(AnswerItem previousAnswerItem, LearnUnit lUnit) { return(new AnswerItem { Message = lUnit.WordStatistic ?? GetCommandIconUnicode(), Picture = lUnit.Picture, Markup = GetLearnMarkup(lUnit.IdWord.GetValueOrDefault()) }); }
public LearnUnit GetNextWord(WordSettings settings) { var userId = settings.UserId; var learnMode = settings.LearnMode; var word = _wordApi.SetQuestionByUser(userId, learnMode); if (word == null) { throw new Exception($"No suitable words to learn. userId={userId}"); } var answers = _wordApi.GetAnswersByUser(userId); var questionItem = new LearnUnit(); IWordFile file; switch (learnMode) { case ELearnMode.OriginalWord: questionItem.Options = answers.Select(a => a.OriginalWord).ToArray(); file = word.CardOriginalWord; break; case ELearnMode.Pronunciation: questionItem.Options = answers.Select(a => a.Pronunciation).ToArray(); file = word.CardPronunciation; break; case ELearnMode.Translation: questionItem.Options = answers.Select(a => a.Translation).ToArray(); file = word.CardTranslation; break; default: questionItem.Options = new string[0]; questionItem.WordStatistic = word.ToScoreString(); file = word.CardAll; questionItem.IdWord = word.Id; break; } questionItem.Picture = new GenerateImageResult { Height = file.Height, Width = file.Width, ImageBody = _wordApi.GetWordCard(file.Id) }; return(questionItem); }
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); }
public abstract AnswerItem ProcessNext(AnswerItem previousAnswerItem, LearnUnit lUnit);