Собственные проверки перед выполнением команд

Для каждого типа команд можно добавить собственные промежуточные проверки. В случае если проверка будет не пройдена, можно прервать выполнение команды.

Для примера рассмотрим создание промежуточного чекера для команд типа Reply.

// Создаем собственные чекер, который будет использован только для Reply команд
var checkerReplyCommand = new InternalChecker(CommandType.Reply, new ReplyExampleChecker());
// При создание бота добавляем чекер.
var telegram = new PRBotBuilder("Token")
                    .SetBotId(0)
                    .AddCommandChecker(checkerReplyCommand)
                    .Build();

Пример самого чекера. Чекер обязательно должен реализовывать интерфейс IInternalCheck и возвращать результат проверки.

namespace ConsoleExample.Checkers
{
    internal class ReplyExampleChecker : IInternalCheck
    {
        public async Task<InternalCheckResult> Check(PRBotBase bot, Update update, CommandHandler handler)
        {
            // Что-то проверяем перед выполнением reply команд.
            // InternalCheckResult.Passed - продолжить выполнение команды, любые другие результаты остановят выполнение команды.
            return InternalCheckResult.Passed;
        }
    }
}

Пример:

Last updated