/// <summary> /// Sends a simple text message /// </summary> /// <param name="text"></param> /// <param name="buttons"></param> /// <param name="replyTo"></param> /// <param name="disableNotification"></param> /// <returns></returns> public async Task <Message> Send(String text, ButtonForm buttons = null, int replyTo = 0, bool disableNotification = false, ParseMode parseMode = ParseMode.Default) { if (this.ActiveForm == null) { return(null); } InlineKeyboardMarkup markup = buttons; Message m = null; if (text.Length > Constants.Telegram.MaxMessageLength) { throw new MaxLengthException(text.Length); } try { m = await(this.Client.TelegramClient.SendTextMessageAsync(this.DeviceId, text, parseMode, replyToMessageId: replyTo, replyMarkup: markup, disableNotification: disableNotification)); OnMessageSent(new MessageSentEventArgs(m)); } catch (ApiRequestException) { return(null); } catch { return(null); } return(m); }
public override async Task Render(MessageResult message) { Bitmap bmp = new Bitmap(800, 600); using (Graphics g = Graphics.FromImage(bmp)) { g.FillRectangle(Brushes.White, 0, 0, bmp.Width, bmp.Height); g.DrawString("Test Image", new Font("Arial", 24, FontStyle.Bold, GraphicsUnit.Pixel), Brushes.Black, new PointF(50, 50)); } await this.Device.SetAction(Telegram.Bot.Types.Enums.ChatAction.UploadPhoto); ButtonForm btn = new ButtonForm(); //btn.AddButtonRow(new ButtonBase("Zum Testformular 1", CallbackData.Create("navigate", "testform1")), new ButtonBase("Zum Testformular 1", CallbackData.Create("navigate", "testform1"))); btn.AddButtonRow(new ButtonBase("Information Prompt", CallbackData.Create("navigate", "alert"))); btn.AddButtonRow(new ButtonBase("Confirmation Prompt with event", CallbackData.Create("navigate", "confirm"))); btn.AddButtonRow(new ButtonBase("Request Prompt", CallbackData.Create("navigate", "prompt"))); await this.Device.SendPhoto(bmp, "Test", "", btn); }
/// <summary> /// Sends an video /// </summary> /// <param name="file"></param> /// <param name="buttons"></param> /// <param name="replyTo"></param> /// <param name="disableNotification"></param> /// <returns></returns> public async Task <Message> SendVideo(String url, ButtonForm buttons = null, int replyTo = 0, bool disableNotification = false, ParseMode parseMode = ParseMode.Default) { if (this.ActiveForm == null) { return(null); } InlineKeyboardMarkup markup = buttons; Message m = null; try { m = await this.Client.TelegramClient.SendVideoAsync(this.DeviceId, new InputOnlineFile(url), parseMode : parseMode, replyToMessageId : replyTo, replyMarkup : markup, disableNotification : disableNotification); OnMessageSent(new MessageSentEventArgs(m)); } catch (ApiRequestException) { return(null); } catch { return(null); } return(m); }
public override void InitState() { SUI = new UI(); var bg = new ImageForm().Set(0, 0, AppInfo.W, AppInfo.H, "").SetImage(new Texture2D("FoomED/bg1.jpg", LoadMethod.Single, false)); SUI.Root.Add(bg); var back = new ButtonForm().Set(5, 5, 80, 30, "Back"); bg.Add(back); back.Click = (b) => { FusionApp.PopState(); }; var lab = new LabelForm().Set(25, 80, 200, 30, "Map Title:"); bg.Add(lab); TextBoxForm map_name = new TextBoxForm().Set(120, 75, 200, 30, "") as TextBoxForm; bg.Add(map_name); map_name.Enter = (txt) => { Directory.CreateDirectory("Game/Maps/" + txt + "/"); var edit_state = new EditMapState(txt); FusionApp.PushState(edit_state); }; }
public override async Task Render(MessageResult result) { if (!RenderNecessary) { return; } var bf = new ButtonForm(this); ButtonBase bOn = new ButtonBase((this.Checked ? CheckedIcon : UncheckedIcon) + " " + CheckedString, "on"); ButtonBase bOff = new ButtonBase((!this.Checked ? CheckedIcon : UncheckedIcon) + " " + UncheckedString, "off"); bf.AddButtonRow(bOn, bOff); if (this.MessageId != null) { var m = await this.Device.Edit(this.MessageId.Value, this.Title, bf); } else { var m = await this.Device.Send(this.Title, bf, disableNotification : true); if (m != null) { this.MessageId = m.MessageId; } } this.RenderNecessary = false; }
private async Task ButtonGridTagForm_Init(object sender, InitEventArgs e) { m_Buttons = new TaggedButtonGrid(); m_Buttons.KeyboardType = TelegramBotBase.Enums.eKeyboardType.ReplyKeyboard; m_Buttons.EnablePaging = true; m_Buttons.HeadLayoutButtonRow = new List <ButtonBase>() { new ButtonBase("Back", "back") }; var countries = CultureInfo.GetCultures(CultureTypes.SpecificCultures); ButtonForm bf = new ButtonForm(); foreach (var c in countries) { bf.AddButtonRow(new TagButtonBase(c.EnglishName, c.EnglishName, c.Parent.EnglishName)); } m_Buttons.Tags = countries.Select(a => a.Parent.EnglishName).Distinct().OrderBy(a => a).ToList(); m_Buttons.SelectedTags = countries.Select(a => a.Parent.EnglishName).Distinct().OrderBy(a => a).ToList(); m_Buttons.ButtonsForm = bf; m_Buttons.ButtonClicked += Bg_ButtonClicked; this.AddControl(m_Buttons); }
public override async Task Render(MessageResult message) { var api = await ModelScoutAPI.ModelScoutAPIPooler.GetOrCreateApi(message.DeviceId); var vkAccs = await api.GetVkAccs(); int TotalLimit = 0; int TotalAddedFrinds = 0; string text = $"У вас {vkAccs.Count} страниц:\n"; int i = 1; foreach (var vkAcc in vkAccs) { text += $"{i++}) {vkAcc.FirstName} {vkAcc.LastName} {vkAcc.CountAddedFriends}/{vkAcc.FriendsLimit};\n"; TotalLimit += vkAcc.FriendsLimit; TotalAddedFrinds += vkAcc.CountAddedFriends; } text += $"\nОбщий лимит {TotalAddedFrinds}/{TotalLimit}"; ButtonForm btn = new ButtonForm(); btn.AddButtonRow( new ButtonBase("Начать работу", new CallbackData("GoTo", "WorkForm").Serialize())); btn.AddButtonRow( new ButtonBase("Список аккаунтов", new CallbackData("GoTo", "AccListForm").Serialize())); await this.Device.Send(text, btn); }
public override void InitState() { base.InitState(); MenuSongSrc = new VSoundSource("Foom/Song/menu1.mp3"); //e2 MenuSongSound = MenuSongSrc.Play2D(true); SUI = new FusionEngine.Resonance.UI(); var TitleBG = new ImageForm().Set(0, 0, AppInfo.W, AppInfo.H).SetImage(new Texture2D("Foom/Img/titlebg1.jpg", LoadMethod.Single, false)); var foomLab = new ImageForm().Set(AppInfo.W / 2 - 350, 40, 700, 356).SetImage(new Texture2D("Foom/Img/foom1.png", LoadMethod.Single, true)); TitleBG.Add(foomLab); var StartGame = new ButtonForm().Set(AppInfo.W / 2 - 120, 380, 260, 40, "Begin..."); var ExitGame = new ButtonForm().Set(AppInfo.W / 2 - 120, 430, 260, 40, "Leave..."); TitleBG.Add(StartGame); TitleBG.Add(ExitGame); SUI.Root.Add(TitleBG); StartGame.Click = (b) => { MenuSongSound.Stop(); FusionApp.PushState(new IntroState(), true); }; }
public override async Task Render(MessageResult message) { ButtonForm btn = new ButtonForm(); var api = await ModelScoutAPI.ModelScoutAPIPooler.GetOrCreateApi(message.DeviceId); var vkAcc = await api.GetVkAcc(_vkAccId); btn.AddButtonRow( new ButtonBase($"Город ({vkAcc.City})", new CallbackData("ChangeCity", "").Serialize()), new ButtonBase($"Страна ({vkAcc.Country})", new CallbackData("ChangeCountry", "").Serialize()) ); btn.AddButtonRow( new ButtonBase($"День ({vkAcc.BirthDay})", new CallbackData("ChangeBirthDay", "").Serialize()), new ButtonBase($"Месяц ({vkAcc.BirthMonth})", new CallbackData("ChangeBirthMonth", "").Serialize()) ); btn.AddButtonRow( new ButtonBase($"Возраст от ({vkAcc.AgeFrom})", new CallbackData("ChangeAgeFrom", "").Serialize()), new ButtonBase($"Возраст до ({vkAcc.AgeTo})", new CallbackData("ChangeAgeTo", "").Serialize()), new ButtonBase($"Пол ({vkAcc.Sex})", new CallbackData("ChangeSex", "").Serialize()) ); btn.AddButtonRow( new ButtonBase($"Лимит ({vkAcc.FriendsLimit})", new CallbackData("ChangeLimit", "").Serialize()) ); btn.AddButtonRow( new ButtonBase("Готово", new CallbackData("GoToCfgAccForm", "").Serialize())); this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnEveryCall; await this.Device.Send("Нажмите чтобы изменить", btn); }
public override async Task Render(MessageResult message) { var api = await ModelScoutAPI.ModelScoutAPIPooler.GetOrCreateApi(message.DeviceId); var vkAccs = await api.GetVkAccs(); string text = $"У вас {vkAccs.Count} страниц:\n" + $"Нажмите на аккаунт для настройки\n"; ButtonForm btn = new ButtonForm(); foreach (var vkAcc in vkAccs) { btn.AddButtonRow( new ButtonBase( $"{vkAcc.FirstName} {vkAcc.LastName} ({vkAcc.CountAddedFriends}/{vkAcc.FriendsLimit})", new CallbackData("GoToCfgAccForm", vkAcc.VkAccId.ToString()).Serialize())); } btn.AddButtonRow( new ButtonBase("Добавить аккаунт", new CallbackData("GoToAddAccForm", "").Serialize())); btn.AddButtonRow( new ButtonBase("Назад", new CallbackData("GoToStartForm", "").Serialize())); this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnEveryCall; await this.Device.Send(text, btn); }
/// <summary> /// Sends a simple text message /// </summary> /// <param name="text"></param> /// <param name="buttons"></param> /// <param name="replyTo"></param> /// <param name="disableNotification"></param> /// <returns></returns> public async Task <Message> Send(long deviceId, String text, ButtonForm buttons = null, int replyTo = 0, bool disableNotification = false, ParseMode parseMode = ParseMode.Default, bool MarkdownV2AutoEscape = true) { if (this.ActiveForm == null) { return(null); } InlineKeyboardMarkup markup = buttons; if (text.Length > Constants.Telegram.MaxMessageLength) { throw new MaxLengthException(text.Length); } if (parseMode == ParseMode.MarkdownV2 && MarkdownV2AutoEscape) { text = text.MarkdownV2Escape(); } try { var t = API(a => a.SendTextMessageAsync(deviceId, text, parseMode, replyToMessageId: replyTo, replyMarkup: markup, disableNotification: disableNotification)); var o = GetOrigin(new StackTrace()); OnMessageSent(new MessageSentEventArgs(await t, o)); return(await t); } catch { return(null); } }
public override async Task Render(MessageResult message) { String s = ""; s += "Selected Node: " + (this.view.SelectedNode?.Text ?? "(null)") + "\r\n"; s += "Visible Node: " + (this.view.VisibleNode?.Text ?? "(top)") + "\r\n"; s += "Visible Path: " + this.view.GetPath() + "\r\n"; s += "Selected Path: " + (this.view.SelectedNode?.GetPath() ?? "(null)") + "\r\n"; ButtonForm bf = new ButtonForm(); bf.AddButtonRow(new ButtonBase("Back", "back")); if (MessageId != null) { await this.Device.Edit(this.MessageId.Value, s, bf); } else { var m = await this.Device.Send(s, bf); this.MessageId = m.MessageId; } }
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("#14 ButtonGrid Tags (Filter)", new CallbackData("a", "buttongridtags").Serialize())); btn.AddButtonRow(new ButtonBase("#15 MultiView", new CallbackData("a", "multiview").Serialize())); btn.AddButtonRow(new ButtonBase("#16 CheckedButtonList", new CallbackData("a", "checkedbuttonlist").Serialize())); await this.Device.Send("Choose your test:", btn); }
private ButtonForm GeneratePagingView(ButtonForm dataForm) { ButtonForm bf = new ButtonForm(); bf = PrepareCheckableLayout(dataForm); //No Items if (this.ButtonsForm.Count == 0) { bf.AddButtonRow(new ButtonBase(NoItemsLabel, "$")); } if (this.IsNavigationBarVisible) { //🔍 List <ButtonBase> lst = new List <ButtonBase>(); lst.Add(new ButtonBase(PreviousPageLabel, "$previous$")); lst.Add(new ButtonBase(String.Format(Localizations.Default.Language["ButtonGrid_CurrentPage"], this.CurrentPageIndex + 1, this.PageCount), "$site$")); lst.Add(new ButtonBase(NextPageLabel, "$next$")); //if (this.EnableSearch) //{ // lst.Insert(2, new ButtonBase("🔍 " + (this.SearchQuery ?? ""), "$search$")); //} bf.InsertButtonRow(0, lst); bf.AddButtonRow(lst); } return(bf); }
/// <summary> /// Edits the text message /// </summary> /// <param name="messageId"></param> /// <param name="text"></param> /// <param name="buttons"></param> /// <returns></returns> public async Task <Message> Edit(Message message, ButtonForm buttons = null) { if (this.ActiveForm == null) { return(null); } InlineKeyboardMarkup markup = buttons; if (message.Text.Length > Constants.Telegram.MaxMessageLength) { throw new MaxLengthException(message.Text.Length); } try { return(await this.Client.TelegramClient.EditMessageTextAsync(this.DeviceId, message.MessageId, message.Text, replyMarkup : markup)); } catch { } return(null); }
private async Task CheckedButtonListForm_Init(object sender, InitEventArgs e) { m_Buttons = new CheckedButtonList(); m_Buttons.KeyboardType = TelegramBotBase.Enums.eKeyboardType.InlineKeyBoard; m_Buttons.EnablePaging = true; m_Buttons.HeadLayoutButtonRow = new List <ButtonBase>() { new ButtonBase("Back", "back"), new ButtonBase("Switch Keyboard", "switch") }; m_Buttons.SubHeadLayoutButtonRow = new List <ButtonBase>() { new ButtonBase("No checked items", "$") }; ButtonForm bf = new ButtonForm(); for (int i = 0; i < 30; i++) { bf.AddButtonRow($"{i}. Item", i.ToString()); } m_Buttons.ButtonsForm = bf; m_Buttons.ButtonClicked += Bg_ButtonClicked; m_Buttons.CheckedChanged += M_Buttons_CheckedChanged; this.AddControl(m_Buttons); }
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); }
public override async Task Render(MessageResult message) { ButtonForm btn = new ButtonForm(); btn.AddButtonRow( new ButtonBase("Отмена", new CallbackData("GoTo", "AccListForm").Serialize())); await this.Device.Send("Click a button", btn); }
public async override Task Render(MessageResult message) { ButtonForm bf = new ButtonForm(); bf.AddButtonRow(new ButtonBase("Goto Step 1", "start")); bf.AddButtonRow(new ButtonBase("Back", "back")); await this.Device.Send("Register Steps", bf); }
/// <summary> /// Sends an image /// </summary> /// <param name="image"></param> /// <param name="name"></param> /// <param name="buttons"></param> /// <param name="replyTo"></param> /// <param name="disableNotification"></param> /// <returns></returns> public async Task <Message> SendPhoto(Bitmap image, String name, ButtonForm buttons = null, int replyTo = 0, bool disableNotification = false) { using (var fileStream = Tools.Images.ToStream(image, ImageFormat.Png)) { InputOnlineFile fts = new InputOnlineFile(fileStream, name); return(await SendPhoto(fts, buttons, replyTo, disableNotification)); } }
private void GotoScreen(ScreenType targetScreenType) { propMenuItem.Visible = false; currentScreenType = targetScreenType; ReleaseCheckedMenu(); switch (targetScreenType) { case ScreenType.Welcome: _ = new WelcomeForm { panel1 = { Parent = panel1 } }; break; case ScreenType.Button: _ = new ButtonForm { panel1 = { Parent = panel1 } }; break; case ScreenType.CheckBox: _ = new CheckBoxForm { panel1 = { Parent = panel1 } }; break; case ScreenType.RadioButton: _ = new RadioButtonForm { panel1 = { Parent = panel1 } }; break; case ScreenType.MessageBox: _ = new MessageBoxForm { panel1 = { Parent = panel1 } }; break; case ScreenType.ProgressBar: _ = new ProgressBarForm(propMenuItem) { panel1 = { Parent = panel1 } }; propMenuItem.Visible = true; break; default: throw new ArgumentOutOfRangeException(nameof(targetScreenType), targetScreenType, null); } var element = controlsMenuItem.Items.Cast <MenuItem>().FirstOrDefault(x => (ScreenType)x.Tag == targetScreenType); if (element != null) { element.Checked = true; } }
private async Task LinkReplaceTest_Opened(object sender, EventArgs e) { ButtonForm bf = new ButtonForm(); bf.AddButtonRow(new ButtonBase("Open GroupChange Test", "groupchange")); bf.AddButtonRow(new ButtonBase("Open WelcomeUser Test", "welcomeuser")); bf.AddButtonRow(new ButtonBase("Open LinkReplace Test", "linkreplace")); await this.Device.Send("LinkReplaceTest started, click to switch", bf); }
public async override Task Render(MessageResult message) { ButtonForm btn = new ButtonForm(); btn.AddButtonRow(new ButtonBase("#4.1 Per Form", new CallbackData("a", "form").Serialize())); btn.AddButtonRow(new ButtonBase("#4.2 Per Step", new CallbackData("a", "step").Serialize())); btn.AddButtonRow(new ButtonBase("Back", new CallbackData("a", "backtodashboard").Serialize())); await this.Device.Send("Choose your test:", btn); }
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); }
/// <summary> /// Edits the reply keyboard markup (buttons) /// </summary> /// <param name="messageId"></param> /// <param name="bf"></param> /// <returns></returns> public async Task <Message> EditReplyMarkup(int messageId, ButtonForm bf) { try { return(await this.Client.TelegramClient.EditMessageReplyMarkupAsync(this.DeviceId, messageId, bf)); } catch { } return(null); }
public ProjectManagerForm() { AfterSet = () => { Title.Text = "Vivid Project Manager"; if (NewProject == null) { LoadProject = new ButtonForm().Set(5, 35, 120, 25, "Edit Project") as ButtonForm; NewProject = new ButtonForm().Set(5, 5, 120, 25, "New Project") as ButtonForm; DeleteProject = new ButtonForm().Set(5, 65, 120, 25, "Delete Project") as ButtonForm; var projGroup = new GroupForm().Set(5, 5, 250, 400) as GroupForm; Body.Add(projGroup); var projInfoGroup = new GroupForm().Set(260, 5, 405, 500) as GroupForm; Body.Add(projInfoGroup); projGroup.Add(NewProject); projGroup.Add(LoadProject); projGroup.Add(DeleteProject); LoadProject.Click = (b) => { var cp = ProjectTree.Selected; Console.WriteLine("Editing Project:" + cp.TextData[0] + " Type:" + cp.TextData[2]); switch (cp.TextData[2]) { case "GameMap": EditProject(cp.TextData[0], Vivid.Project.ProjectType.GameMap); break; } }; NewProject.Click = (b) => { var new_proj = new NewProjectForm().Set(AppInfo.W / 2 - 200, AppInfo.H / 2 - 150, 400, 300, "New Project") as NewProjectForm; UI.CurUI.Top = new_proj; }; ProjectTree = new TreeViewForm().Set(AppInfo.W - 350, 10, 320, 450, "") as TreeViewForm; ProjectTree.Root = new TreeNode("Projets"); Body.Add(ProjectTree); } }; }
public override async Task Render(MessageResult message) { if (message.Handled) { return; } int Count = 20; //Need move count to User.Properties ButtonForm btn; var api = await ModelScoutAPI.ModelScoutAPIPooler.GetOrCreateApi(message.DeviceId); await api.ClearCheckedClients(); var clients = await api.GetUnchekedClientsForActivesVkAccs(Count); foreach (var client in clients) { btn = new ButtonForm(); var photos = await api.GetVkProfilePhotosMaxSizesAsync(client); try { var msgs = await this.Client.TelegramClient.SendMediaGroupAsync(photos, this.Device.DeviceId); foreach (var msg in msgs) { this.OldMessages.Add(msg.MessageId); } string text = $"{client.ProfileVkId}"; btn.AddButtonRow( new ButtonBase("Принять", new CallbackData("AcceptClient", $"{client.VkClientId}").Serialize()), new ButtonBase("Отклонить", new CallbackData("DeclineClient", $"{client.VkClientId}").Serialize())); await this.Device.Send(text, btn); await Task.Delay(1000); } catch (Telegram.Bot.Exceptions.ApiRequestException) { await api.SetClientStatusError(client.VkClientId); } } btn = new ButtonForm(); btn.AddButtonRow( new ButtonBase("Следующая выборка", new CallbackData("NextSample", "").Serialize())); btn.AddButtonRow( new ButtonBase("Назад", new CallbackData("GoToStartForm", "").Serialize())); await this.Device.Send("Click a button", btn); }
public override async Task Render(MessageResult message) { var task = await db.Tasks.Include(x => x.Responsible).FirstAsync(x => x.Id == editTaskId); switch (currentState) { case EditState.Watch: await Device.Send( $"{task.Title}\n{task.Description}\n{task.Responsible.Login}\n" + $"Приоритет: {task.Priority}\nДедлайн: {task.Deadline}"); var buttons = new ButtonForm(); buttons.AddButtonRow( new ButtonBase("Название", new CallbackData("edit-title", "").Serialize()), new ButtonBase("Описание", new CallbackData("edit-description", "").Serialize()), new ButtonBase("Ответственный", new CallbackData("responsible", "").Serialize())); buttons.AddButtonRow( new ButtonBase("Дата", new CallbackData("deadline", "").Serialize()), new ButtonBase("Приоритет", new CallbackData("priority", "").Serialize())); buttons.AddButtonRow("Звершить редактирование", new CallbackData("back", "").Serialize()); await Device.Send("Выберете, что редактировать", buttons); return; case EditState.Title: await Device.Send($"Введите новое название"); return; case EditState.Description: await Device.Send($"Введите новое описание"); return; case EditState.Responsible: await NavigateTo(DI.Resolve(new AssignTaskForm(this, editTaskId))); currentState = EditState.Watch; return; case EditState.Deadline: return; case EditState.Priority: return; default: return; } }
/// <summary> /// Edits the reply keyboard markup (buttons) /// </summary> /// <param name="messageId"></param> /// <param name="bf"></param> /// <returns></returns> public async Task <Message> EditReplyMarkup(int messageId, ButtonForm bf) { try { return(await API(a => a.EditMessageReplyMarkupAsync(this.DeviceId, messageId, bf))); } catch { } return(null); }
public override async Task Render(MessageResult message) { await base.Render(message); var buttons = new ButtonForm(); buttons.AddButtonRow( new ButtonBase("Создать задачу", new CallbackData("nav", "create").Serialize()), new ButtonBase("Созданные задачи", new CallbackData("nav", "list-created").Serialize()), new ButtonBase("Назначенные задачи", new CallbackData("nav", "list-assigned").Serialize())); await this.Device.Send("Выберите действие", buttons); }