Files
BotPages/BotPages.Core/Context/PageContextStorageExtensions.cs
FrigaT 57b3706241
All checks were successful
CI / build-test (push) Successful in 29s
Release / pack-and-publish (release) Successful in 32s
Выделены отдельные расширения
2025-12-06 07:52:01 +03:00

27 lines
1.2 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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);
}