Пример #1
0
        private static void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            Task.Run(() =>
            {
                var x = db.GetUserByUID(e.CallbackQuery.From.Id);
                if (x != null)
                {
                    switch (e.CallbackQuery.Data)
                    {
                    case "get":
                        x.page = Page.Get;
                        var k  = GAuthBotDevBot.Keyboard.Generator.Create(x, backPage: Page.Main);
                        bot.EditMessageTextAsync(x.uid, x.messageid, Translator.get.first_message, replyMarkup: k);
                        break;

                    case "add":
                        x.page = Page.Add;
                        bot.EditMessageTextAsync(x.uid, x.messageid, "Send your Google Auth secret code using this format\n\n<code>[Issuer/Website] [CODE]\n\nEg: gugel.com 131512312SA</code>", parseMode: ParseMode.Html, replyMarkup: Layout.key2);
                        break;

                    case "rem":
                        x.page = Page.Remove;
                        var kk = GAuthBotDevBot.Keyboard.Generator.Create(x, backPage: Page.Main);
                        bot.EditMessageTextAsync(x.uid, x.messageid, Translator.get.first_message, replyMarkup: kk);
                        break;

                    case "cancel":
                        bot.EditMessageTextAsync(x.uid, x.messageid, Translator.get.first_message, replyMarkup: Keyboard.Layout.key1);
                        x.page = Page.Main;
                        break;

                    default:
                        switch (x.page)
                        {
                        case Page.Get:
                            if (e.CallbackQuery.Data == Page.Main.ToString())
                            {
                                bot.EditMessageTextAsync(x.uid, x.messageid, Translator.get.first_message, replyMarkup: Keyboard.Layout.key1);
                                x.page = Page.Main;
                            }
                            else if (x.accounts.ContainsKey(e.CallbackQuery.Data))
                            {
                                bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id, new API(API.OTPType.TOTP, x.accounts[e.CallbackQuery.Data].secret_code).Now(), true);
                            }
                            break;

                        case Page.Remove:
                            if (x.accounts.ContainsKey(e.CallbackQuery.Data))
                            {
                                x.accounts.Remove(e.CallbackQuery.Data);
                                bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id, "Deleted!", true);
                            }
                            bot.EditMessageTextAsync(x.uid, x.messageid, Translator.get.first_message, replyMarkup: Keyboard.Layout.key1);
                            x.page = Page.Main;
                            break;
                        }
                        break;
                    }

                    db.Update(x);
                }
                else
                {
                    bot.SendTextMessageAsync(e.CallbackQuery.Message.From.Id, Translator.get.callback_query_user_not_found);
                }
            });
        }