> For the complete documentation index, see [llms.txt](https://prethink.gitbook.io/prtelegrambot/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://prethink.gitbook.io/prtelegrambot/ru/api/interfeisy/iexecutestep.md).

# IExecuteStep

```csharp
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();
    }
}

```
