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); }
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); }