Обработка до и после update
OnPreUpdate - событие до всех update
Бывают ситуации, когда перед обработкой входящего сообщения или любого другого обновления требуется выполнить дополнительную логику. Например, проверить, зарегистрирован ли пользователь. Если пользователь не зарегистрирован — можно сразу отправить его на регистрацию и при необходимости прервать дальнейшую обработку текущего update.
Для таких случаев предусмотрено событие OnPreUpdate: оно вызывается перед основным пайплайном обработки и позволяет выполнить свою логику, а также — при необходимости — остановить дальнейшую обработку.
Пример:
// Создание бота
var telegram = new PRBotBuilder("Token").SetBotId(0).Build();
// Подписка на событие.
telegram.Events.UpdateEvents.OnPreUpdate += Handler_OnUpdate;
// Метод обработки события.
async Task<UpdateResult> Handler_OnUpdate(BotEventArgs e)
{
/*
Для примера можно рассмотреть зарегистрирован ли пользователь или нет.
Если зарегистрирован
return UpdateResult.Continue; - данный результат позволит продолжить обработку.
Если не зарегистрирован то вызвать метод регистрации
RegisterMethod();
return UpdateResult.Stop или return UpdateResult.Handled - позволит прервать текущую обработку и отправить пользователя на регистрацию
*/
return UpdateResult.Continue;
}OnPostUpdate - событие после всех update
Иногда необходимо выполнить некоторую логику после обработки любого действия пользователя. Например, сохранить дату и время последней активности пользователя.
Для этого можно использовать событие OnPostUpdate: оно вызывается после завершения всей основной обработки update и позволяет выполнить дополнительные действия, не влияя на основной пайплайн.
Last updated