/
d.alekseev
/
SmartMenuBot
Обзор
Документация
Войти
/
d.alekseev
/
SmartMenuBot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ConsoleBot/Core/Entities/ToDoUser.cs
46 строк
2 KB
d.alekseev
feat: перенос хранения ToDoUser/ToDoItem в JSON-файлы с индексом задач
08 фев 2026, 17:05
08 фев 2026, 17:05
9c066a2
Код
Авторство
О чём код?
namespace SmartMenuBot.Core.Entities { public class ToDoUser { public Guid UserId { get; } public long TelegramUserId { get; } public string? TelegramUserName { get; private set; } public DateTime RegisteredAt { get; } public ToDoUser(long telegramUserId, string? telegramUserName) : this(Guid.NewGuid(), telegramUserId, telegramUserName, DateTime.UtcNow) { } private ToDoUser(Guid userId, long telegramUserId, string? telegramUserName, DateTime registeredAt) { if (userId == Guid.Empty) throw new ArgumentException("Поле UserId не может быть пустым GUID", nameof(userId)); if (telegramUserId <= 0) throw new ArgumentException("Поле ID должно быть положительным числом", nameof(telegramUserId)); UserId = userId; TelegramUserId = telegramUserId; TelegramUserName = telegramUserName; RegisteredAt = registeredAt; } public static ToDoUser Restore(Guid userId, long telegramUserId, string? telegramUserName, DateTime registeredAt) { return new ToDoUser(userId, telegramUserId, telegramUserName, registeredAt); } public void ChangeUserName(string newName) { if (string.IsNullOrWhiteSpace(newName)) throw new ArgumentNullException(nameof(newName)); TelegramUserName = newName; } public override string ToString() { return $"User {TelegramUserName} (ID: {TelegramUserId})"; } } }