Как написать telegram бота в виде теста по изучению ЯП C#

Рейтинг: 0Ответов: 0Опубликовано: 07.04.2023

Мне необходимо сделать бота в виде теста по изучению языка программирования C#, но с толкнулся с проблемой, что с помощью условного оператора или switch не получается построить цепочку вопросов. Запускается нужный раздел, но после нажатия кнопки "Дальше" следующие сообщение не идет. Я попытался найти как по другому сделать, но ничего не нашел.

Вот моя программа:

private static async void OnMessageHandler(object sender, MessageEventArgs e)
{
    var msg = e.Message;

    if (msg.Text == "/start")
    {
        await client.SendTextMessageAsync(msg.Chat.Id, "Здравствуйте, вас приветствует телеграм бот по изучению языка программирования C Sharp. Выбирите необходимый блок для изучения:" + "\nБазовые концепции /basic_concepts" + "\nУсловные операторы и циклы /conditional_operators" + "\nМетоды  /methods" + "\nКлассы и объекты /classes_and_objects" + "\nМассивы и строки /arrays_and_strings" + "\nНаследование /inheritance" + "\nФайлы /files");
    }

    switch (msg.Text)
    {
        case "/basic_concepts": //Базовые концепции
            await client.SendTextMessageAsync(msg.Chat.Id, "C# это элегантный объектно-ориентированный язык программирования.", replyMarkup: GetButtons2());
            switch (msg.Text)
            {
                case "Дальше": //Базовые концепции
                    await client.SendTextMessageAsync(msg.Chat.Id, ".NET Фреймворк состоит из Общеязыковой Исполняющей Среды (Common Language Runtime (CLR)) и библиотеки классов .NET Framework. CLR является основой.NET Framework. Она управляет кодом во время выполнения программы, предоставляя основные сервисы, такие как управление памятью и многие другие аспекты вашего кода. Библиотека классов является набором классов, интерфейсов и типов значений, которые позволяют вам решать набор общих задач программирования, таких как сбор данных, доступ к файлам и работа с текстом.Программы на языке C# используют библиотеку классов .NET Framework для выполнения общих заданий и предоставления различных функциональностей.", replyMarkup: GetButtons2());
                    break;
            }
            break;
        case "/conditional_operators": // условные операторы и циклы
            await client.SendTextMessageAsync(msg.Chat.Id, "C# приложения запускаются? Выбирите вариант ответа", replyMarkup: GetButtons2());
            break;
        case "/methods": // методы
            break;
        case "/classes_and_objects": // классы и объекты
            break;
        case "/arrays_and_strings": // массивы и строки
            break;
        case " /inheritance": // наследование
            break;
        case "/files": //файлы
            break;
    }
}
 
private static IReplyMarkup GetButtons2() 
{ 
    return new ReplyKeyboardMarkup 
    { 
        Keyboard = new List<List<KeyboardButton>> 
        { 
            new List<KeyboardButton>{new KeyboardButton { Text = "Дальше"} } 
        } 
    }; 
}

Ответы

Ответов пока нет.