Files
ChatBot/ChatBot/Services/Telegram/Commands/TelegramCommandContext.cs
Leonid Pershin 8f9da50318 add command
2025-10-15 22:11:33 +03:00

71 lines
2.1 KiB
C#

namespace ChatBot.Services.Telegram.Commands
{
/// <summary>
/// Контекст выполнения команды Telegram
/// </summary>
public class TelegramCommandContext
{
/// <summary>
/// ID чата
/// </summary>
public long ChatId { get; set; }
/// <summary>
/// Имя пользователя
/// </summary>
public string Username { get; set; } = string.Empty;
/// <summary>
/// Текст сообщения
/// </summary>
public string MessageText { get; set; } = string.Empty;
/// <summary>
/// Тип чата
/// </summary>
public string ChatType { get; set; } = string.Empty;
/// <summary>
/// Название чата
/// </summary>
public string ChatTitle { get; set; } = string.Empty;
/// <summary>
/// Аргументы команды (все после названия команды)
/// </summary>
public string Arguments { get; set; } = string.Empty;
/// <summary>
/// Создает новый контекст команды
/// </summary>
public static TelegramCommandContext Create(
long chatId,
string username,
string messageText,
string chatType,
string chatTitle
)
{
var commandParts = messageText.Split(' ', 2);
// Убираем @botusername если есть
if (commandParts[0].Contains('@'))
{
commandParts[0] = commandParts[0].Split('@')[0];
}
var arguments = commandParts.Length > 1 ? commandParts[1].Trim() : string.Empty;
return new TelegramCommandContext
{
ChatId = chatId,
Username = username,
MessageText = messageText,
ChatType = chatType,
ChatTitle = chatTitle,
Arguments = arguments,
};
}
}
}