refactor: example projects
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
using TelegramBotBase.Attributes;
|
||||
using TelegramBotBase.Base;
|
||||
using TelegramBotBase.Form;
|
||||
|
||||
namespace AsyncFormUpdates.Forms;
|
||||
|
||||
public class AsyncFormEdit : FormBase
|
||||
{
|
||||
[SaveState] private int _counter;
|
||||
|
||||
private int _messageId;
|
||||
|
||||
public override Task Load(MessageResult message)
|
||||
{
|
||||
_counter++;
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public override async Task Action(MessageResult message)
|
||||
{
|
||||
await message.ConfirmAction();
|
||||
|
||||
switch (message.RawData ?? "")
|
||||
{
|
||||
case "back":
|
||||
var st = new Start();
|
||||
await NavigateTo(st);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public override async Task Render(MessageResult message)
|
||||
{
|
||||
var bf = new ButtonForm();
|
||||
bf.AddButtonRow("Back", "back");
|
||||
|
||||
if (_messageId != 0)
|
||||
{
|
||||
await Device.Edit(_messageId, $"Your current count is at: {_counter}", bf);
|
||||
}
|
||||
else
|
||||
{
|
||||
var m = await Device.Send($"Your current count is at: {_counter}", bf, disableNotification: true);
|
||||
_messageId = m.MessageId;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
using TelegramBotBase.Attributes;
|
||||
using TelegramBotBase.Base;
|
||||
using TelegramBotBase.Form;
|
||||
|
||||
namespace AsyncFormUpdates.Forms;
|
||||
|
||||
public class AsyncFormUpdate : AutoCleanForm
|
||||
{
|
||||
[SaveState] private int _counter;
|
||||
|
||||
public override Task Load(MessageResult message)
|
||||
{
|
||||
_counter++;
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public override async Task Action(MessageResult message)
|
||||
{
|
||||
await message.ConfirmAction();
|
||||
|
||||
switch (message.RawData ?? "")
|
||||
{
|
||||
case "back":
|
||||
var st = new Start();
|
||||
await NavigateTo(st);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public override async Task Render(MessageResult message)
|
||||
{
|
||||
var bf = new ButtonForm();
|
||||
bf.AddButtonRow("Back", "back");
|
||||
|
||||
await Device.Send($"Your current count is at: {_counter}", bf, disableNotification: true);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
using TelegramBotBase.Base;
|
||||
using TelegramBotBase.Form;
|
||||
|
||||
namespace AsyncFormUpdates.Forms;
|
||||
|
||||
public class Start : AutoCleanForm
|
||||
{
|
||||
public override async Task Action(MessageResult message)
|
||||
{
|
||||
await message.ConfirmAction();
|
||||
|
||||
switch (message.RawData ?? "")
|
||||
{
|
||||
case "async":
|
||||
|
||||
var afe = new AsyncFormEdit();
|
||||
await NavigateTo(afe);
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case "async_del":
|
||||
|
||||
var afu = new AsyncFormUpdate();
|
||||
await NavigateTo(afu);
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public override async Task Render(MessageResult message)
|
||||
{
|
||||
var bf = new ButtonForm();
|
||||
|
||||
bf.AddButtonRow("Open Async Form with AutoCleanupForm", "async_del");
|
||||
|
||||
bf.AddButtonRow("Open Async Form with Edit", "async");
|
||||
|
||||
await Device.Send("Choose your option", bf);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user