This commit is contained in:
@@ -1,32 +1,28 @@
|
||||
namespace BotPages.Core
|
||||
using BotPages.Core.Abstractions;
|
||||
using BotPages.Core.Context;
|
||||
|
||||
namespace BotPages.Core;
|
||||
|
||||
/// <summary>
|
||||
/// Базовый класс страницы.
|
||||
/// </summary>
|
||||
public abstract class Page
|
||||
{
|
||||
/// <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;
|
||||
}
|
||||
|
||||
/// <summary>Вход на страницу.</summary>
|
||||
public virtual Task OnEnter(PageContext ctx, CancellationToken ct) => Task.CompletedTask;
|
||||
/// <summary>Общий обработчик обновлений.</summary>
|
||||
public virtual Task OnUpdate(PageContext ctx, UpdateContext update, CancellationToken ct) => Task.CompletedTask;
|
||||
/// <summary>Обработка текста.</summary>
|
||||
public virtual Task OnText(PageContext ctx, string text, CancellationToken ct) => Task.CompletedTask;
|
||||
/// <summary>Обработка файлов.</summary>
|
||||
public virtual Task OnFile(PageContext ctx, List<FileDescriptor> files, CancellationToken ct) => Task.CompletedTask;
|
||||
/// <summary>Обработка кнопки.</summary>
|
||||
public virtual Task OnButton(PageContext ctx, string payload, CancellationToken ct) => Task.CompletedTask;
|
||||
/// <summary>Выход со страницы.</summary>
|
||||
public virtual Task OnLeave(PageContext ctx, CancellationToken ct) => Task.CompletedTask;
|
||||
/// <summary>Таймаут бездействия.</summary>
|
||||
public virtual Task OnTimeout(PageContext ctx, TimeSpan timeout, CancellationToken ct) => Task.CompletedTask;
|
||||
/// <summary>Обработка ошибок.</summary>
|
||||
public virtual Task OnError(PageContext ctx, Exception ex, CancellationToken ct) => Task.CompletedTask;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user