28 lines
873 B
C#
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);
|
|
}
|
|
} |