
57
После настройки в методе Main необходимо настроить обработчики
событий пользователя. Для обработки текстовых сообщений существует
асинхронный метод BotOnMessageReceived, который принимает
сообщение пользователя в результате его действия. Внутри метода
изначально проверяется сообщение на null и на тип сообщения, т.к. оно
обязательно должно быть текстовое. Само сообщение записывается в
переменную text в уже отформатированном формате (рисунок 49).
Рисунок 49 – Обработка текстовых событий
В случае, если пользователь ввел команду «/start» выполняются
следующие действия (рисунок 50): в консольное приложения записывается
пользователь, который начал проходить тестирование; происходит очистка
всех данных из памяти по конкретному чату, используя заранее
написанный вспомогательный метод в классе Storage; отправляется
сообщение в чат пользователю о количестве вопросах и способе ответа на
них; далее ищется первый вопрос из коллекции вопросов класса
TemperamentTest; если вопрос пустой, в чате пользователя выводится
сообщение об ошибке, если вопрос не пустой, то выводится в чате
пользователя специальная клавиатура с вариантами ответа на вопрос.
Вывод клавиатуры обеспечен специальным вспомогательным методом
SendInlineKeyBoardbyQuestion, который принимает идентификатор чата,
куда нужно отправить клавиатуру, и вопрос, на основе которого будет
строиться клавиатура. Метод специально отдельно венесен для
уменьшения дублирования кода. Данный метод используется повсеместно
по всему проекту.