- Update of FormBase for better async event management

- Update of ControlBase for partial rendering options
- Updating serveral base classes to better asyc event management
- separating Enums into different folder
- some small bug fixes
- removed "CustomEventManagement" cause it doesnt make sense now
This commit is contained in:
FlorianDahn
2019-07-14 22:22:04 +02:00
parent cb4a797b12
commit e4da70d37d
17 changed files with 404 additions and 103 deletions
+8 -1
View File
@@ -11,7 +11,12 @@ namespace TelegramBaseTest.Tests
public class ButtonTestForm : AutoCleanForm
{
public override async Task Opened()
public ButtonTestForm()
{
this.Opened += ButtonTestForm_Opened;
}
private async Task ButtonTestForm_Opened(object sender, EventArgs e)
{
await this.Device.Send("Hello world! (Click 'back' to get back to Start)");
}
@@ -83,6 +88,8 @@ namespace TelegramBaseTest.Tests
btn.AddButtonRow(new ButtonBase("Button 3", new CallbackData("a", "button3").Serialize()), new ButtonBase("Button 4", new CallbackData("a", "button4").Serialize()));
btn.AddButtonRow(new ButtonBase("Google.com", "google", "https://www.google.com"), new ButtonBase("Telegram", "telegram", "https://telegram.org/"));
btn.AddButtonRow(new ButtonBase("Back", new CallbackData("a", "back").Serialize()));
await this.Device.Send("Click a button", btn);
+8 -12
View File
@@ -14,10 +14,13 @@ namespace TelegramBaseTest.Tests
public ProgressTest()
{
this.DeleteMode = eDeleteMode.OnLeavingForm;
this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm;
this.Opened += ProgressTest_Opened;
this.Closed += ProgressTest_Closed;
}
public override async Task Opened()
private async Task ProgressTest_Opened(object sender, EventArgs e)
{
await this.Device.Send("Welcome to ProgressTest");
}
@@ -87,14 +90,14 @@ namespace TelegramBaseTest.Tests
//Render Progress bar and show some "example" progress
await Bar.Render();
await Bar.Render(message);
this.Controls.Add(Bar);
for (int i = 0; i <= 100; i++)
{
Bar.Value++;
await Bar.Render();
await Bar.Render(message);
Thread.Sleep(250);
}
@@ -117,17 +120,10 @@ namespace TelegramBaseTest.Tests
await this.Device.Send("Choose your progress bar:", btn);
}
public override async Task Closed()
private async Task ProgressTest_Closed(object sender, EventArgs e)
{
foreach (var b in this.Controls)
{
await b.Cleanup();
}
await this.Device.Send("Ciao from ProgressTest");
}
}
}
@@ -12,11 +12,17 @@ namespace TelegramBaseTest.Tests.Register.Steps
{
public Data UserData { get; set; }
public async override Task Init(params object[] args)
public Step1()
{
this.Init += Step1_Init;
}
private async Task Step1_Init(object sender, InitEventArgs e)
{
this.UserData = new Data();
}
public async override Task Load(MessageResult message)
{
if (message.Handled)
+5 -4
View File
@@ -13,16 +13,17 @@ namespace TelegramBaseTest.Tests
public SimpleForm()
{
this.DeleteSide = eSide.Both;
this.DeleteMode = eDeleteMode.OnLeavingForm;
this.DeleteSide = TelegramBotBase.Enums.eSide.Both;
this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm;
this.Opened += SimpleForm_Opened;
}
public override async Task Opened()
private async Task SimpleForm_Opened(object sender, EventArgs e)
{
await this.Device.Send("Hello world! (send 'back' to get back to Start)\r\nOr\r\nhi, hello, maybe, bye and ciao");
}
public override async Task Load(MessageResult message)
{
//message.MessageText will work also, cause it is a string you could manage a lot different scenerios here
+39 -1
View File
@@ -8,8 +8,12 @@ using TelegramBotBase.Form;
namespace TelegramBaseTest.Tests
{
public class Start : FormBase
public class Start : AutoCleanForm
{
public Start()
{
this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm;
}
public override async Task Action(MessageResult message)
{
@@ -79,6 +83,36 @@ namespace TelegramBaseTest.Tests
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;
}
@@ -99,6 +133,10 @@ namespace TelegramBaseTest.Tests
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()));
await this.Device.Send("Choose your test:", btn);
}
+7 -2
View File
@@ -15,13 +15,18 @@ namespace TelegramBaseTest.Tests
String LastMessage { get; set; }
public TestForm()
{
this.Opened += TestForm_Opened;
this.Closed += TestForm_Closed;
}
public override async Task Opened()
private async Task TestForm_Opened(object sender, EventArgs e)
{
await this.Device.Send("Welcome to Form 1");
}
public override async Task Closed()
private async Task TestForm_Closed(object sender, EventArgs e)
{
await this.Device.Send("Ciao from Form 1");
}
+10 -2
View File
@@ -16,17 +16,25 @@ namespace TelegramBaseTest.Tests
{
public override async Task Opened()
public TestForm2()
{
this.Opened += TestForm2_Opened;
this.Closed += TestForm2_Closed;
}
private async Task TestForm2_Opened(object sender, EventArgs e)
{
await this.Device.Send("Welcome to Form 2");
}
public override async Task Closed()
private async Task TestForm2_Closed(object sender, EventArgs e)
{
await this.Device.Send("Ciao from Form 2");
}
public override async Task Action(MessageResult message)
{
var call = message.GetData<CallbackData>();