Обработка до и после update

OnPreUpdate - событие до всех update

Бывают ситуации, когда перед обработкой сообщений или любого другого типа 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. После всех обновлений выполнить некую обработку.

// Создание бота
var telegram = new PRBotBuilder("Token").SetBotId(0).Build();
// Подписка на событие.
telegram.Events.UpdateEvents.OnPostUpdate += Handler_OnPostUpdate;
// Метод обработки события.
async Task Handler_OnPostUpdate(BotEventArgs e)
{
    // Пример. Регистрация последней активности пользователя в боте. Допустим дата и время
}

Last updated