예제 #1
0
        static object ViewMenu(long Id)
        {
            var replyMarkup = MenuKeyboard();

            startText = "📂 Главное меню";
            if (DbWorking.CheckAdmin(Id) == true)
            {
                startText   = "🔐 Меню администратора";
                replyMarkup = AdminMenuKeyboard();
            }
            return(replyMarkup);
        }
예제 #2
0
        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}");
        }