Files
BotPages/BotPages.Core/Abstractions/CompositeSessionKey.cs

28 lines
873 B
C#

using BotPages.Core.Context;
namespace BotPages.Core.Abstractions;
/// <summary>
/// Ключ для идентификации пользовательской сессии.
/// </summary>
public readonly record struct CompositeSessionKey(string AdapterId, string ChatId, string? UserId)
{
/// <summary>
/// Создает ключ сессии из UpdateContext.
/// </summary>
public static CompositeSessionKey FromUpdate(UpdateContext update)
{
return new CompositeSessionKey(
update.Adapter.Id,
update.Chat.Id,
update.User.Id);
}
/// <summary>
/// Получить ключ для определенного адаптера.
/// </summary>
public CompositeSessionKey ForAdapter(string adapterId)
{
return new CompositeSessionKey(adapterId, ChatId, UserId);
}
}