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