static object ViewMenu(long Id) { var replyMarkup = MenuKeyboard(); startText = "📂 Главное меню"; if (DbWorking.CheckAdmin(Id) == true) { startText = "🔐 Меню администратора"; replyMarkup = AdminMenuKeyboard(); } return(replyMarkup); }
private async static void Bot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e) { var args = e.Message; switch (args.Text) { case "/start": { if (DbWorking.CheckUser(args.Chat.Id) == true) { var menu = ViewMenu(args.Chat.Id); await bot.SendTextMessageAsync(args.Chat.Id, $"{startText}", replyMarkup : (IReplyMarkup)menu); } else { Msg currentMsg = new Msg() { id = e.Message.Chat.Id, firstname = e.Message.Chat.FirstName, username = $"@{e.Message.Chat.Username}" }; DbWorking.AddUsers(currentMsg, e); await bot.SendTextMessageAsync( chatId : args.Chat.Id, text : "Привет, очень рад с Вами познакомиться!😎\n\nОткуда вы о нас узнали?", replyMarkup : (IReplyMarkup)AnalyticsInlineKeyboard(1)); } break; } case "👤 Фретти": { await bot.SendTextMessageAsync(args.Chat.Id, "<a href=\"https://teletype.in/@frettibot/fretti\">Подробнее</a>", ParseMode.Html); break; } case "📦 Компьютерные комплектующие": { await bot.SendTextMessageAsync( chatId : args.Chat.Id, text : "📟 Ниже Вы можете ознакомиться с компьютерными комплектующими:", replyMarkup : (IReplyMarkup)ComputerPartsKeyboard()); break; } case "✍ Написать владельцу": { await bot.SendTextMessageAsync( chatId : args.Chat.Id, text : "📝 Оцените Фретти и Ваш отзыв прямиком улетит разработчику данного бота.", replyMarkup : new InlineKeyboardMarkup(new[] { new[] { InlineKeyboardButton.WithCallbackData("😍"), InlineKeyboardButton.WithCallbackData("😏"), InlineKeyboardButton.WithCallbackData("🤬"), }, })); break; } case "🔙 Назад": { var menu = ViewMenu(args.Chat.Id); await bot.SendTextMessageAsync(args.Chat.Id, $"{startText}", replyMarkup : (IReplyMarkup)menu); ask_a_question = false; break; } case "Отмена": { price_entry = true; await bot.SendTextMessageAsync(args.Chat.Id, "📟 Ниже Вы можете ознакомиться с компьютерными комплектующими:", replyMarkup : (IReplyMarkup)ComputerPartsKeyboard()); break; } case "🚨 Отмена": // "доступ" args.text == { addAdmins = false; delAdmins = false; await bot.SendTextMessageAsync( chatId : args.Chat.Id, text : "🔇 Меню доступа", replyMarkup : new ReplyKeyboardMarkup( new KeyboardButton[][] { new KeyboardButton[] { "🕵 Список администрации" }, new KeyboardButton[] { "✅ Добавить", "❎ Удалить" }, new KeyboardButton[] { "🔙 Назад" }, }) { ResizeKeyboard = true }); break; } case "📞 Помощь": { ask_a_question = true; await bot.SendTextMessageAsync(args.Chat.Id, "Напишите нам о Вашей проблеме" + " или вопрос, ответ на который Вас интересует. Мы постараемся ответить Вам максимально быстро.", replyMarkup : new ReplyKeyboardMarkup( new KeyboardButton[][] { new KeyboardButton[] { "🔙 Назад" }, }) { ResizeKeyboard = true }); break; } case "Видеокарта": { productName = args.Text; await bot.SendTextMessageAsync( chatId : args.Chat.Id, text : "<a href=\"https://teletype.in/@frettibot/graphics_card\">Подробнее</a>", parseMode : ParseMode.Html, replyMarkup : (IReplyMarkup)ComputerPartsInlineKeyboard()); break; } case "Процессор": { productName = args.Text; await bot.SendTextMessageAsync( chatId : args.Chat.Id, text : "<a href=\"https://teletype.in/@frettibot/CPU\">Подробнее</a>", parseMode : ParseMode.Html, replyMarkup : (IReplyMarkup)ComputerPartsInlineKeyboard()); break; } case "Материнская плата": { productName = args.Text; await bot.SendTextMessageAsync( chatId : args.Chat.Id, text : "<a href=\"https://teletype.in/@frettibot/motherboard\">Подробнее</a>", parseMode : ParseMode.Html, replyMarkup : (IReplyMarkup)ComputerPartsInlineKeyboard()); break; } case "Модули оперативной памяти": { productName = args.Text; await bot.SendTextMessageAsync( chatId : args.Chat.Id, text : "<a href=\"https://teletype.in/@frettibot/RAM\">Подробнее</a>", parseMode : ParseMode.Html, replyMarkup : (IReplyMarkup)ComputerPartsInlineKeyboard()); break; } case "Дисковый накопитель": { productName = args.Text; await bot.SendTextMessageAsync( chatId : args.Chat.Id, text : "<a href=\"https://teletype.in/@frettibot/HDD\">Подробнее</a>", parseMode : ParseMode.Html, replyMarkup : (IReplyMarkup)ComputerPartsInlineKeyboard()); break; } case "Корпус": { productName = args.Text; await bot.SendTextMessageAsync( chatId : args.Chat.Id, text : "<a href=\"https://teletype.in/@frettibot/body\">Подробнее</a>", parseMode : ParseMode.Html, replyMarkup : (IReplyMarkup)ComputerPartsInlineKeyboard()); break; } case "Блок питания": { productName = args.Text; await bot.SendTextMessageAsync( chatId : args.Chat.Id, text : "<a href=\"https://teletype.in/@frettibot/Power_supply\">Подробнее</a>", parseMode : ParseMode.Html, replyMarkup : (IReplyMarkup)ComputerPartsInlineKeyboard()); break; } case "🔒 Доступ": { await bot.SendTextMessageAsync( chatId : args.Chat.Id, text : "🔇 Меню доступа", replyMarkup : new ReplyKeyboardMarkup( new KeyboardButton[][] { new KeyboardButton[] { "🕵 Список администрации" }, new KeyboardButton[] { "✅ Добавить", "❎ Удалить" }, new KeyboardButton[] { "🔙 Назад" }, }) { ResizeKeyboard = true }); break; } case "🕵 Список администрации": { DbWorking.AdminsView(e.Message.Chat.Id); break; } case "✅ Добавить": { addAdmins = true; await bot.SendTextMessageAsync(args.Chat.Id, "Введите username нового администратора:", replyMarkup : new ReplyKeyboardMarkup( new KeyboardButton[][] { new KeyboardButton[] { "🚨 Отмена" }, }) { ResizeKeyboard = true }); break; } case "❎ Удалить": { delAdmins = true; await bot.SendTextMessageAsync(args.Chat.Id, "Введите username администратора, которого хотите удалить:", replyMarkup : new ReplyKeyboardMarkup( new KeyboardButton[][] { new KeyboardButton[] { "🚨 Отмена" }, }) { ResizeKeyboard = true }); break; } case "🗂 Аналитика": { await bot.SendTextMessageAsync(args.Chat.Id, "В данном разделе представлена полная аналитика по боту", replyMarkup : new ReplyKeyboardMarkup( new KeyboardButton[][] { new KeyboardButton[] { "Пользователи" }, new KeyboardButton[] { "Формы рассылок-анкет" }, new KeyboardButton[] { "Нажатия на клавиши" }, new KeyboardButton[] { "🔙 Назад" }, }) { ResizeKeyboard = true }); break; } case "Формы рассылок-анкет": { DbWorking.ViewAnalist(e); break; } case "Нажатия на клавиши": { DbWorking.ViewClickKeyboard(e); break; } case "Пользователи": { DbWorking.ViewAmountUsers(e); break; } default: { if (answer_to_the_question == false) { DbWorking.SendAnswer(e, args.Text, messId); answer_to_the_question = true; } else if (DbWorking.CheckAdmin(args.Chat.Id) && addAdmins) { DbWorking.AddAdmins(args.Text, e); addAdmins = false; } else if (DbWorking.CheckAdmin(args.Chat.Id) && delAdmins) { DbWorking.DelAdmins(args.Text, e); delAdmins = false; } else if (ask_a_question == true) { await bot.SendTextMessageAsync(args.Chat.Id, "📂 Главное меню", replyMarkup : (IReplyMarkup)MenuKeyboard()); Msg currentMsg = new Msg() { id = args.Chat.Id, messageId = args.MessageId, text = args.Text, username = args.Chat.Username }; DbWorking.HelpAdmins(currentMsg); DbWorking.AddAnswer(currentMsg); ask_a_question = false; } else if (price_entry == false) { if (double.TryParse(e.Message.Text, out double setPrice) == true) { DbWorking.PriceComputerParts(e, setPrice, productName); } else { await bot.SendTextMessageAsync(args.Chat.Id, "Вы ввели некорректное число!"); } price_entry = true; } else { var menu = ViewMenu(args.Chat.Id); await bot.SendTextMessageAsync(args.Chat.Id, "❗ Учусь отвечать на этот вопрос правильно!", replyMarkup : (IReplyMarkup)menu); // доработать чтобы клаву не сворачивало } break; } } string text = e.Message.Text; Console.WriteLine($"{args.Chat.FirstName}: {text}"); }