-
-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathProgressTest.cs
136 lines (94 loc) · 3.25 KB
/
ProgressTest.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
using System;
using System.Threading;
using System.Threading.Tasks;
using TelegramBotBase.Base;
using TelegramBotBase.Controls.Inline;
using TelegramBotBase.Enums;
using TelegramBotBase.Form;
namespace TelegramBotBase.Example.Tests;
public class ProgressTest : AutoCleanForm
{
public ProgressTest()
{
DeleteMode = EDeleteMode.OnLeavingForm;
Opened += ProgressTest_Opened;
Closed += ProgressTest_Closed;
}
private async Task ProgressTest_Opened(object sender, EventArgs e)
{
await Device.Send("Welcome to ProgressTest");
}
public override async Task Action(MessageResult message)
{
var call = message.GetData<CallbackData>();
await message.ConfirmAction();
if (call == null)
{
return;
}
ProgressBar bar = null;
switch (call.Value)
{
case "standard":
bar = new ProgressBar(0, 100, ProgressBar.EProgressStyle.standard)
{
Device = Device
};
break;
case "squares":
bar = new ProgressBar(0, 100, ProgressBar.EProgressStyle.squares)
{
Device = Device
};
break;
case "circles":
bar = new ProgressBar(0, 100, ProgressBar.EProgressStyle.circles)
{
Device = Device
};
break;
case "lines":
bar = new ProgressBar(0, 100, ProgressBar.EProgressStyle.lines)
{
Device = Device
};
break;
case "squaredlines":
bar = new ProgressBar(0, 100, ProgressBar.EProgressStyle.squaredLines)
{
Device = Device
};
break;
case "start":
var sf = new Menu();
await NavigateTo(sf);
return;
default:
return;
}
//Render Progress bar and show some "example" progress
await bar.Render(message);
Controls.Add(bar);
for (var i = 0; i <= 100; i++)
{
bar.Value++;
await bar.Render(message);
Thread.Sleep(250);
}
}
public override async Task Render(MessageResult message)
{
var btn = new ButtonForm();
btn.AddButtonRow(new ButtonBase("Standard", new CallbackData("a", "standard").Serialize()),
new ButtonBase("Squares", new CallbackData("a", "squares").Serialize()));
btn.AddButtonRow(new ButtonBase("Circles", new CallbackData("a", "circles").Serialize()),
new ButtonBase("Lines", new CallbackData("a", "lines").Serialize()));
btn.AddButtonRow(new ButtonBase("Squared Line", new CallbackData("a", "squaredlines").Serialize()));
btn.AddButtonRow(new ButtonBase("Back to start", new CallbackData("a", "start").Serialize()));
await Device.Send("Choose your progress bar:", btn);
}
private async Task ProgressTest_Closed(object sender, EventArgs e)
{
await Device.Send("Ciao from ProgressTest");
}
}