Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }