static void Keyboard_Handler(object sender, CallbackQueryEventArgs e) { User currentUser = users.Find(user => user.ChatID == e.CallbackQuery.Message.Chat.Id); try { if (e.CallbackQuery.Data == "OK") { Client.AnswerCallbackQueryAsync(e.CallbackQuery.Id); currentUser.Manager.Examination.ShowTest(Client, currentUser.ChatID, replyKeyboard); } else if (e.CallbackQuery.Data == "URL") { Client.AnswerCallbackQueryAsync(e.CallbackQuery.Id); } } catch (NullReferenceException nullEx) { ExtensionList.Add(users, new User(e.CallbackQuery.Message.Chat.Id)); Client.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, "Для виклику лекцій використовуйте команду /study. Уважно прочитайте її вміст і приступайте до тестів, в випадку успішного проходження (мінімум 60% вірних відповідей) Ви отримуєте доступ до наступної лекції. Вдалого навчання 😉"); Console.WriteLine(nullEx.Message); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
static void FirstCommand(object Sender, MessageEventArgs e) { User currentUser = users.Find(user => user.ChatID == e.Message.Chat.Id); if (e.Message.Text == "/start") { Client.SendTextMessageAsync(currentUser.ChatID, "Для виклику лекцій використовуйте команду /study. Уважно прочитайте її вміст і приступайте до тестів, в випадку успішного проходження (мінімум 4 тести з 5) Ви отримуєте доступ до наступної лекції."); ExtensionList.Add(users, new User(e.Message.Chat.Id)); } else if (e.Message.Text == "/study") { Client.SendTextMessageAsync(currentUser.ChatID, Lectures[currentUser.Level], replyMarkup: inlineKeyboardOK); currentUser.Manager.SetXFile("Tests\\Test" + currentUser.Level + ".xml"); currentUser.Manager.ReadTest(); } else if (e.Message.Text == "/showlectures") { string @string = ""; for (int i = 0; i <= currentUser.Level; i++) { @string += $"{i + 1}. " + Lectures[i] + "\n"; } Client.SendTextMessageAsync(currentUser.ChatID, @string); } else if (e.Message.Text == "/debuglevel") { currentUser.Level = 0; Client.SendTextMessageAsync(currentUser.ChatID, "Повернення до початкового рівня."); } else if (e.Message.Text == "/donate") { Client.SendTextMessageAsync(currentUser.ChatID, "Ви можете оцінити наш проект або почати стежити за ним за наступним посиланням.", replyMarkup: urlButton); } }
static void Command_Handler(object Sender, MessageEventArgs e) { User currentUser = users.Find(user => user.ChatID == e.Message.Chat.Id); try { #region Commands switch (e.Message.Text) { case "/start": ExtensionList.Add(users, new User(e.Message.Chat.Id)); Client.SendTextMessageAsync(e.Message.Chat.Id, "Для виклику лекцій використовуйте команду /study. Уважно прочитайте її вміст і приступайте до тестів, в випадку успішного проходження (мінімум 60% вірних відповідей) Ви отримуєте доступ до наступної лекції. Вдалого навчання 😉"); break; case "/study": if (currentUser.Level < 10) { Client.SendTextMessageAsync(currentUser.ChatID, Lectures[currentUser.Level], replyMarkup: inlineKeyboardOK); currentUser.Manager.SetXFile("Tests\\Test" + currentUser.Level + ".xml"); currentUser.Manager.ReadTest(); } else { Client.SendTextMessageAsync(e.Message.Chat.Id, "Ви вже закінчили навчання ✅ \nЩоб пройти курс заново, оберіть команду /reset."); } break; case "/showlectures": string @string = ""; for (int i = 0; i <= currentUser.Level; i++) { if (i < 10) { @string += $"{i + 1}. " + Lectures[i] + "\n"; } } Client.SendTextMessageAsync(currentUser.ChatID, @string); break; case "/reset": currentUser.Level = 0; Client.SendTextMessageAsync(currentUser.ChatID, "Повернення до початкового рівня ⏪"); XMLmanager.UpdateLevel(currentUser); break; case "/donate": Client.SendTextMessageAsync(currentUser.ChatID, "Ви можете оцінити наш проект або почати стежити за ним за наступним посиланням 😉", replyMarkup: urlButton); break; case "1": case "2": case "3": case "4": currentUser.Manager.Examination.TakeAnswer(Client, currentUser, replyKeyboard, Convert.ToInt32(e.Message.Text)); break; default: Client.SendTextMessageAsync(currentUser.ChatID, "Невідома команда!"); break; } #endregion } catch (NullReferenceException nullEx) { ExtensionList.Add(users, new User(e.Message.Chat.Id)); Client.SendTextMessageAsync(e.Message.Chat.Id, "Для виклику лекцій використовуйте команду /study. Уважно прочитайте її вміст і приступайте до тестів, в випадку успішного проходження (мінімум 60% вірних відповідей) Ви отримуєте доступ до наступної лекції. Вдалого навчання 😉"); Console.WriteLine(nullEx.Message); } catch (Exception ex) { Console.WriteLine(ex.Message); } }