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) { 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); }
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 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); }
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); }
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); }
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 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); }
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) { 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; } }
public override async Task Render(MessageResult message) { ButtonForm btn = new ButtonForm(); btn.AddButtonRow(new ButtonBase("Button 1", new CallbackData("a", "button1").Serialize()), new ButtonBase("Button 2", new CallbackData("a", "button2").Serialize())); 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); }
public override async Task Render(MessageResult message) { ButtonForm 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 this.Device.Send("Choose your progress bar:", btn); }
public override async Task Render(MessageResult message) { ButtonForm bf = new ButtonForm(); bf.AddButtonRow(new ButtonBase("Request User contact", "contact")); bf.AddButtonRow(new ButtonBase("Request User location", "location")); bf.AddButtonRow(new ButtonBase("Back", "back")); InlineKeyboardMarkup ikv = bf; await this.Device.Send("Please upload a contact, photo, video, audio, document or location.", bf); }
private ButtonForm GeneratePagingView(ButtonForm dataForm) { ButtonForm bf = new ButtonForm(); for (int i = 0; i < this.MaximumRow - LayoutRows; i++) { int it = (this.CurrentPageIndex * (this.MaximumRow - LayoutRows)) + i; if (it > dataForm.Rows - 1) { break; } bf.AddButtonRow(dataForm[it]); } //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$")); if (this.Tags != null && this.Tags.Count > 0) { lst.Add(new ButtonBase("📁", "$filter$")); } 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); }
public override async Task Render(MessageResult message) { await base.Render(message); // var task = await db.Tasks.FindAsync(editTaskId); var taskButtons = new ButtonForm(); taskButtons.AddButtonRow( new ButtonBase("Обычно", new CallbackData("normal", "").Serialize()), new ButtonBase("Важно", new CallbackData("important", "").Serialize()), new ButtonBase("Неважно", new CallbackData("unimportant", "").Serialize())); taskButtons.AddButtonRow("Звершить редактирование", new CallbackData("back", "").Serialize()); await Device.Send($"Выберете приоритет:", taskButtons); }
public override async Task Render(MessageResult message) { string text = "Текущий конфиг:\n..."; ButtonForm btn = new ButtonForm(); btn.AddButtonRow( new ButtonBase("Изменить конфиг", new CallbackData("GoToChangeCfgAccForm", "").Serialize())); btn.AddButtonRow( new ButtonBase("Удалить аккаунт", new CallbackData("RemoveVkAcc", "").Serialize())); btn.AddButtonRow( new ButtonBase("Назад", new CallbackData("GoToAccListForm", "").Serialize())); this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnEveryCall; await this.Device.Send(text, btn); }
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); }
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 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; }
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) { 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); }
private async Task ButtonGridForm_Init(object sender, InitEventArgs e) { m_Buttons = new ButtonGrid(); m_Buttons.KeyboardType = TelegramBotBase.Enums.eKeyboardType.InlineKeyBoard; ButtonForm bf = new ButtonForm(); bf.AddButtonRow(new ButtonBase("Back", "back"), new ButtonBase("Switch Keyboard", "switch")); bf.AddButtonRow(new ButtonBase("Button1", "b1"), new ButtonBase("Button2", "b2")); bf.AddButtonRow(new ButtonBase("Button3", "b3"), new ButtonBase("Button4", "b4")); m_Buttons.ButtonsForm = bf; m_Buttons.ButtonClicked += Bg_ButtonClicked; this.AddControl(m_Buttons); }
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); }
public override async Task Render(MessageResult message) { await base.Render(message); var task = await db.Tasks.FindAsync(editTaskId); var taskButtons = new ButtonForm(); foreach (var user in db.Users) { taskButtons.AddButtonRow(user.Login, new CallbackData("assign-user", user.DeviceId.ToString()).Serialize()); } await Device.Send($"Выберете пользователя:", taskButtons); }
public override async Task Render(MessageResult result) { var startnode = this.VisibleNode; var nodes = (startnode?.ChildNodes ?? this.Nodes); ButtonForm bf = new ButtonForm(); if (startnode != null) { bf.AddButtonRow(new ButtonBase(this.MoveUpIcon, "up"), new ButtonBase(startnode.Text, "parent")); } foreach (var n in nodes) { var s = n.Text; if (this.SelectedNode == n) { s = "[ " + s + " ]"; } bf.AddButtonRow(new ButtonBase(s, n.Value, n.Url)); } 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); this.MessageId = m.MessageId; } }
public override async Task Render(MessageResult message) { await base.Render(message); List <PersonalTask> tasks = await GetTaskList(message.DeviceId); if (tasks.Count == 0) { await Device.Send("Вы не имеете созданных или назначенных задач."); } await Device.Send("Список созданных"); foreach (var task in tasks) { ButtonForm taskButtons; if (mode == DisplayMode.Created) { taskButtons = new ButtonForm(); taskButtons.AddButtonRow( new ButtonBase("Редактивовать задачу", new CallbackData("edit", task.Id.ToString()).Serialize()), new ButtonBase("Удалить задачу", new CallbackData("delete", task.Id.ToString()).Serialize())); } else { taskButtons = null; } var messageText = $"Задача\n\nНазвание: *{task.Title}*\n" + $"Описание:\n{task.Description}\n" + $"Ответственный пользователь: {task.Responsible?.Login ?? "Нет"}\n" + $"Дата окончания: {task.Deadline}\n" + $"Приоритет задачи: {task.Priority}"; await Device.Send( messageText, taskButtons, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown); } var buttons = new ButtonForm(); buttons.AddButtonRow("Вернуться в меню.", new CallbackData("nav", "back").Serialize()); await this.Device.Send("Отображены все задачи", buttons); }
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; } }
public override async Task Render(MessageResult result) { if (!RenderNecessary) { return; } var bf = new ButtonForm(this); var lst = new List <ButtonBase>(); foreach (var o in this.Options) { var index = this.Options.IndexOf(o); if (o == this.SelectedOption) { lst.Add(new ButtonBase(SelectedIcon + " " + o.Text, "check$" + index)); continue; } lst.Add(new ButtonBase(o.Text, "check$" + index)); } bf.AddButtonRow(lst); 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; }