예제 #1
0
        static void Main()
        {
            Client = new TelegramBotClient("1050115445:AAFMHnHtznwJNdwZtQ_J0kKF6iqZ8K9EnX4");
            XMLmanager.ReadFile(users);

            Client.OnMessage       += Command_Handler;
            Client.OnCallbackQuery += Keyboard_Handler;
            Client.StartReceiving();
            bool truth = true;

            while (truth)
            {
                string   str = Console.ReadLine();
                string[] com = str.Split(" ");
                switch (com[0])
                {
                case "send":
                    Client.SendTextMessageAsync(com[1], com[2]);
                    break;

                case "exit":
                    truth = false;
                    break;
                }
            }
            Client.StopReceiving();
        }
예제 #2
0
        static void Main()
        {
            Client = new TelegramBotClient("1050115445:AAFMHnHtznwJNdwZtQ_J0kKF6iqZ8K9EnX4");
            XMLmanager.ReadFile(users);

            Client.OnMessage       += FirstCommand;
            Client.OnCallbackQuery += Keyboard_Handler;
            Client.StartReceiving();
            Console.ReadKey(true);
            Client.StopReceiving();
        }
예제 #3
0
        public static void Add(this List <User> list, User user)
        {
            foreach (User item in list)
            {
                if (item.ChatID == user.ChatID)
                {
                    return;
                }
            }

            list.Add(user);
            XMLmanager.AddToFile(user);
            Console.WriteLine($"User add {user.ChatID}");
        }
예제 #4
0
        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);
            }
        }