private async Task <bool> MoveOnNextWord(PaginationCollection <WordInLearningSet> selector, bool moveNext) { for (int i = 0; i < selector.Count; i++) { if (moveNext) { selector.MoveNext(); } else { selector.MovePrev(); } if (!await HasUserWord(selector.Current)) { return(true); } } return(false); }
public async Task Handle(Update update) { if (_pages.Count == 0) { await Chat.ConfirmCallback(update.CallbackQuery.Id); return; } if (update.CallbackQuery.Data == WellKnownWordsHelper.PrevData) { _pages.MovePrev(); } else { _pages.MoveNext(); } var msg = new StringBuilder(); foreach (var word in _pages.Current) { msg.Append($"{Emojis.SoftMark} *{word.Word}:* {word.AllTranslationsAsSingleString}\r\n"); } msg.Append(Chat.Texts.PageXofYMarkdown(_pages.Page + 1, _pages.Count)); await Chat.EditMessageTextMarkdown( update.CallbackQuery.Message.MessageId, msg.ToString(), new[] { WellKnownWordsHelper.GetPagingKeys(), new[] { InlineButtons.MainMenu($"{Emojis.MainMenu} {Chat.Texts.MainMenuButton}"), } }); await Chat.ConfirmCallback(update.CallbackQuery.Id); }