IExecuteStep

using PRTelegramBot.Models.Enums;

namespace PRTelegramBot.Interfaces
{
    /// <summary>
    /// Интерфейс пошагового выполнения команд.
    /// </summary>
    public interface IExecuteStep
    {
        /// <summary>
        /// Игнорировать базовые команды при выполнение шагов.
        /// </summary>
        public bool IgnoreBasicCommands { get; set; }

        /// <summary>
        /// Это последний шаг завершен.
        /// </summary>
        public bool LastStepExecuted { get; set; }

        /// <summary>
        /// Получить ссылку на метод, который нужно выполнить.
        /// </summary>
        /// <returns>Метод для выполнения.</returns>
        Func<IBotContext, Task> GetExecuteMethod();

        /// <summary>
        /// Выполнить команду.
        /// </summary>
        /// <param name="context">Контекст бота.</param>
        /// <returns>Результат выполнения команды.</returns>
        Task<ExecuteStepResult> ExecuteStep(IBotContext context);

        /// <summary>
        /// Может ли быть выполнен шаг
        /// </summary>
        /// <returns>True - да/False - нет.</returns>
        bool CanExecute();
    }
}

Last updated