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;
}
}