namespace BotPages.Core { /// /// Базовая реализация страницы без обязательных переопределений. /// public abstract class Page : IPage { /// /// Идентификатор страницы. /// public virtual string Id => GetType().Name; /// /// Виртуальный метод входа; по умолчанию ничего не делает. /// public virtual Task EnterAsync(UpdateContext ctx, CancellationToken ct) => Task.FromResult(new PageResult()); /// /// Абстрактная обработка событий; обязателен к реализации. /// public abstract Task HandleAsync(UpdateContext ctx, CancellationToken ct); /// /// Виртуальный метод выхода; по умолчанию ничего не делает. /// public virtual Task ExitAsync(UpdateContext ctx, CancellationToken ct) => Task.CompletedTask; } }