92 lines
1.9 KiB
C#
92 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Telegram.Bot.Types;
|
|
using TelegramBotBase.Base;
|
|
using TelegramBotBase.Form;
|
|
using TelegramBotBase.Form.Navigation;
|
|
|
|
namespace TelegramBotBaseTest.Tests.Navigation
|
|
{
|
|
public class Start : FormBase
|
|
{
|
|
|
|
Message msg = null;
|
|
|
|
public Start()
|
|
{
|
|
|
|
}
|
|
|
|
|
|
public override async Task Load(MessageResult message)
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
public override async Task Action(MessageResult message)
|
|
{
|
|
if (message.Handled)
|
|
return;
|
|
|
|
await message.ConfirmAction();
|
|
|
|
switch (message.RawData)
|
|
{
|
|
case "yes":
|
|
|
|
message.Handled = true;
|
|
|
|
//Create navigation controller and navigate to it, keep the current form as root form so we can get back to here later
|
|
var nc = new CustomController(this);
|
|
nc.ForceCleanupOnLastPop = true;
|
|
|
|
var f1 = new Form1();
|
|
|
|
await nc.PushAsync(f1);
|
|
|
|
await NavigateTo(nc);
|
|
|
|
if (msg == null)
|
|
return;
|
|
|
|
await Device.DeleteMessage(msg);
|
|
|
|
|
|
break;
|
|
case "no":
|
|
|
|
message.Handled = true;
|
|
|
|
var mn = new Menu();
|
|
|
|
await NavigateTo(mn);
|
|
|
|
if (msg == null)
|
|
return;
|
|
|
|
await Device.DeleteMessage(msg);
|
|
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
public override async Task Render(MessageResult message)
|
|
{
|
|
var bf = new ButtonForm();
|
|
|
|
bf.AddButtonRow("Yes", "yes");
|
|
bf.AddButtonRow("No", "no");
|
|
|
|
msg = await Device.Send("Open controller?", bf);
|
|
|
|
|
|
}
|
|
|
|
}
|
|
}
|