コード例 #1
0
ファイル: AllTasksCommand.cs プロジェクト: anyarik/cap
        public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args)
        {
            var tasks = await this.demoService.GetAllTasks();

            var taskTitles = tasks.OrderBy(t => t.Title).Take(5).Select(t => t.Title).ToArray();
            await context.Bot.Client.MakeRequestAsync(
                new SendMessageRequest(
                    context.Update.Message.Chat.Id,
                    $"Выбирите таск (1/{(int)Math.Ceiling(tasks.Count / 5 * 1d) + 1})"
                    )
            {
                ReplyMarkup = Markup.CreateTaskInlineKeyboard(taskTitles)
            }
                ).ConfigureAwait(false);
        }
コード例 #2
0
        public async Task HandleAsync(IUpdateContext context, UpdateDelegate next)
        {
            var queryData = context.Update.CallbackQuery.Data;
            var pageStr   = queryData.Substring(Constants.RootPage.Length).Split(":")[0];
            var page      = int.Parse(pageStr);

            var allTask = await this.DemoService.GetAllTasks().ConfigureAwait(false);

            var tasks = allTask.OrderBy(t => t.Title)
                        .Skip(page * Constants.CountOnPage)
                        .Take(Constants.CountOnPage);
            var taskTitles = tasks.Select(t => t.Title).ToArray();

            var inlineKeyboard = Markup.CreateTaskInlineKeyboard(taskTitles, page);

            await RefreshInlineMenu(context, inlineKeyboard, $"Выбирите таск ({page + 1}/{(int)Math.Ceiling(allTask.Count / Constants.CountOnPage * 1d) + 1})").ConfigureAwait(false);
        }