/
d.alekseev
/
SmartMenuBot
Обзор
Документация
Войти
/
d.alekseev
/
SmartMenuBot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ConsoleBot/Infrastructure/DataAccess/ModelMapper.cs
92 строки
3 KB
d.alekseev
feat: подключение PostgreSQL через linq2db и миграция репозиториев на SQL
18 фев 2026, 23:03
18 фев 2026, 23:03
86c230c
Код
Авторство
О чём код?
using SmartMenuBot.Core.DataAccess.Models; using SmartMenuBot.Core.Entities; namespace SmartMenuBot.Infrastructure.DataAccess { internal static class ModelMapper { public static ToDoUser MapFromModel(ToDoUserModel model) { return ToDoUser.Restore( model.UserId, model.TelegramUserId, model.TelegramUserName, model.RegisteredAt); } public static ToDoUserModel MapToModel(ToDoUser entity) { return new ToDoUserModel { UserId = entity.UserId, TelegramUserId = entity.TelegramUserId, TelegramUserName = entity.TelegramUserName, RegisteredAt = entity.RegisteredAt }; } public static ToDoItem MapFromModel(ToDoItemModel model) { ArgumentNullException.ThrowIfNull(model.User); var user = MapFromModel(model.User); ToDoList? list = null; if (model.List is not null) { ArgumentNullException.ThrowIfNull(model.List.User); var listUser = MapFromModel(model.List.User); list = ToDoList.Restore( model.List.Id, model.List.Name, listUser, model.List.CreatedAt); } return ToDoItem.Restore( model.Id, user, model.Name, model.CreatedAt, model.Deadline, (ToDoItemState)model.State, model.StateChangedAt, list); } public static ToDoItemModel MapToModel(ToDoItem entity) { return new ToDoItemModel { Id = entity.Id, UserId = entity.User.UserId, ListId = entity.List?.Id, Name = entity.Name, CreatedAt = entity.CreatedAt, Deadline = entity.Deadline, State = (int)entity.State, StateChangedAt = entity.StateChangedAt }; } public static ToDoList MapFromModel(ToDoListModel model) { ArgumentNullException.ThrowIfNull(model.User); var user = MapFromModel(model.User); return ToDoList.Restore(model.Id, model.Name, user, model.CreatedAt); } public static ToDoListModel MapToModel(ToDoList entity) { return new ToDoListModel { Id = entity.Id, Name = entity.Name, UserId = entity.User.UserId, CreatedAt = entity.CreatedAt }; } } }