Как написать telegram бота в виде теста по изучению ЯП C#
Мне необходимо сделать бота в виде теста по изучению языка программирования 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 = "Дальше"} }
}
};
}
Источник: Stack Overflow на русском