27 lines
1.2 KiB
C#
27 lines
1.2 KiB
C#
using BotPages.Core.Abstractions;
|
||
|
||
namespace BotPages.Core;
|
||
|
||
/// <summary>
|
||
/// Расширения <see cref="PageContext"/> для работы с <see cref="IStateStorage"/>
|
||
/// </summary>
|
||
public static class PageContextStorageExtensions
|
||
{
|
||
|
||
/// <summary>Получить состояние по ключу.</summary>
|
||
public static Task<T?> GetStorageAsync<T>(this PageContext ctx, string key, CancellationToken ct)
|
||
=> ctx.StateStorage.GetAsync<T>(ctx.SessionKey, key, ct);
|
||
|
||
/// <summary>Сохранить состояние по ключу.</summary>
|
||
public static Task SetStorageAsync<T>(this PageContext ctx, string key, T state, CancellationToken ct)
|
||
=> ctx.StateStorage.SetAsync<T>(ctx.SessionKey, key, state, ct);
|
||
|
||
/// <summary>Удалить состояние по ключу.</summary>
|
||
public static Task<bool> RemoveStorageAsync(this PageContext ctx, string key, CancellationToken ct)
|
||
=> ctx.StateStorage.RemoveAsync(ctx.SessionKey, key, ct);
|
||
|
||
/// <summary>Удалить все состояния по ключу.</summary>
|
||
public static Task<bool> ClearStorageAsync(this PageContext ctx, CancellationToken ct)
|
||
=> ctx.StateStorage.ClearAsync(ctx.SessionKey, ct);
|
||
}
|