/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/Gridient.Core/Features/Views/Commands/CreateViewCommandHandler.cs
47 строк
1 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
using Gridient.Core.Constants; using Gridient.Core.Exceptions; using Gridient.Core.Models; using Gridient.Core.Repositories; using MediatR; namespace Gridient.Core.Features.Views.Commands { /// <summary> /// Обработчик команды для создания представления /// </summary> public class CreateViewCommandHandler : IRequestHandler<CreateViewCommand> { private readonly ListsRepositoryFactory _factory; public CreateViewCommandHandler(ListsRepositoryFactory factory) { _factory = factory; } public async Task Handle(CreateViewCommand request, CancellationToken cancellationToken) { if (string.IsNullOrEmpty(request.Request.Title)) throw ListsException.RequiredField(nameof(CreateViewRequest.Title)); var viewRequest = request.Request; viewRequest.ListId = request.ListId; var newView = new View { ListId = viewRequest.ListId, Title = viewRequest.Title }; newView.ViewFields = viewRequest.FieldIds .Select((fieldId, index) => new ViewFieldEntity { ViewId = newView.Id, FieldId = fieldId, FieldOrder = index + 1 }) .ToArray(); await _factory.ViewsRepository.AddAsync(newView, cancellationToken); } } }