using BotPages.Core; using BotPages.Core.Abstractions; using BotPages.Core.Messaging; namespace Demo.Pages; /// /// Стартовая страница демо‑бота. /// Обычная страница с кнопками /// public sealed class WelcomePage : SingletonPage { public override async Task OnEnter(PageContext ctx, CancellationToken ct) { await ctx.ClearStorageAsync(ct); await new MessageBuilder(ctx) .Text("Добро пожаловать! 🚀") .Reply(WelcomePageButtons.CreateRequest) .Reply(WelcomePageButtons.Help) .Reply(WelcomePageButtons.SendFile) .SendAsync(ct); } public override Task OnText(PageContext ctx, string text, CancellationToken ct) { var button = ButtonExtensions.FromButtonLabel(text); switch (button) { case WelcomePageButtons.CreateRequest: { return ctx.Navigation.GoToAsync(ctx, ct); } case WelcomePageButtons.Help: { return new MessageBuilder(ctx).Text("Здесь будет справка.", MessageFormat.Plain).SendAsync(ct); } case WelcomePageButtons.SendFile: { return ctx.Navigation.GoToAsync(ctx, ct); } } return base.OnText(ctx, text, ct); } } public enum WelcomePageButtons { [Button("Создать заявку")] CreateRequest, [Button("Помощь")] Help, [Button("Отправка файла")] SendFile, }