Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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);
        }
Exemple #14
0
        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);
        }
Exemple #16
0
        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);
        }
Exemple #17
0
        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);
        }
Exemple #19
0
        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);
        }
Exemple #20
0
        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;
            }
        }
Exemple #22
0
        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);
        }
Exemple #23
0
        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);
        }
Exemple #25
0
        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);
        }
Exemple #26
0
        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);
        }
Exemple #27
0
        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;
            }
        }
Exemple #28
0
        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);
        }
Exemple #29
0
        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;
            }
        }
Exemple #30
0
        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;
        }