using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TelegramBotBase.Base; using TelegramBotBase.Form; using TelegramBotBaseTest.Tests.Controls; namespace TelegramBotBaseTest.Tests { public class Menu : AutoCleanForm { public Menu() { this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm; } public override async Task Load(MessageResult message) { if (message.Message.Chat.Type == Telegram.Bot.Types.Enums.ChatType.Group | message.Message.Chat.Type == Telegram.Bot.Types.Enums.ChatType.Supergroup) { var sf = new TelegramBotBaseTest.Tests.Groups.WelcomeUser(); await this.NavigateTo(sf); } await Device.HideReplyKeyboard(); } public override async Task Action(MessageResult message) { var call = message.GetData(); await message.ConfirmAction(); if (call == null) return; switch(call.Value) { case "text": var sf = new SimpleForm(); await this.NavigateTo(sf); break; case "buttons": var bf = new ButtonTestForm(); await this.NavigateTo(bf); break; case "progress": var pf = new ProgressTest(); await this.NavigateTo(pf); break; case "registration": var reg = new Register.Start(); await this.NavigateTo(reg); break; case "form1": var form1 = new TestForm(); await this.NavigateTo(form1); break; case "form2": var form2 = new TestForm2(); await this.NavigateTo(form2); break; case "data": message.Handled = true; var data = new DataForm(); await this.NavigateTo(data); break; case "calendar": message.Handled = true; var calendar = new Controls.CalendarPickerForm(); await this.NavigateTo(calendar); break; case "month": message.Handled = true; var month = new Controls.MonthPickerForm(); await this.NavigateTo(month); break; case "treeview": message.Handled = true; var tree = new Controls.TreeViewForms(); await this.NavigateTo(tree); break; case "togglebuttons": message.Handled = true; var tb = new Controls.ToggleButtons(); await this.NavigateTo(tb); break; case "buttongrid": message.Handled = true; var bg = new Controls.ButtonGridForm(); await this.NavigateTo(bg); break; case "buttongridfilter": message.Handled = true; var bg2 = new Controls.ButtonGridPagingForm(); await this.NavigateTo(bg2); break; case "multiview": message.Handled = true; var mvf = new MultiViewForm(); await NavigateTo(mvf); break; } } public override async Task Render(MessageResult message) { ButtonForm btn = new ButtonForm(); btn.AddButtonRow(new ButtonBase("#1 Simple Text", new CallbackData("a", "text").Serialize()), new ButtonBase("#2 Button Test", new CallbackData("a", "buttons").Serialize())); btn.AddButtonRow(new ButtonBase("#3 Progress Bar", new CallbackData("a", "progress").Serialize())); btn.AddButtonRow(new ButtonBase("#4 Registration Example", new CallbackData("a", "registration").Serialize())); btn.AddButtonRow(new ButtonBase("#5 Form1 Command", new CallbackData("a", "form1").Serialize())); btn.AddButtonRow(new ButtonBase("#6 Form2 Command", new CallbackData("a", "form2").Serialize())); btn.AddButtonRow(new ButtonBase("#7 Data Handling", new CallbackData("a", "data").Serialize())); btn.AddButtonRow(new ButtonBase("#8 Calendar Picker", new CallbackData("a", "calendar").Serialize())); btn.AddButtonRow(new ButtonBase("#9 Month Picker", new CallbackData("a", "month").Serialize())); btn.AddButtonRow(new ButtonBase("#10 TreeView", new CallbackData("a", "treeview").Serialize())); btn.AddButtonRow(new ButtonBase("#11 ToggleButtons", new CallbackData("a", "togglebuttons").Serialize())); btn.AddButtonRow(new ButtonBase("#12 ButtonGrid", new CallbackData("a", "buttongrid").Serialize())); btn.AddButtonRow(new ButtonBase("#13 ButtonGrid Paging & Filter", new CallbackData("a", "buttongridfilter").Serialize())); btn.AddButtonRow(new ButtonBase("#15 MultiView", new CallbackData("a", "multiview").Serialize())); await this.Device.Send("Choose your test:", btn); } } }