/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/Gridient.Core/Features/FieldValues/Queries/GetLookupValuesQueryHandler.cs
35 строк
2 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
using Gridient.Core.Models; using Gridient.Core.Repositories; using Gridient.Core.Services.Interfaces; using MediatR; namespace Gridient.Core.Features.FieldValues.Queries { /// <summary> /// Обработчик запроса для получения lookup-значений поля /// Авторизация списка выполняется в AuthorizationBehavior /// </summary> public class GetLookupValuesQueryHandler : IRequestHandler<GetLookupValuesQuery, LookupValue[]> { private readonly ListsRepositoryFactory _factory; private readonly IFieldsService _fieldsService; public GetLookupValuesQueryHandler( ListsRepositoryFactory factory, IFieldsService fieldsService) { _factory = factory; _fieldsService = fieldsService; } public async Task<LookupValue[]> Handle(GetLookupValuesQuery request, CancellationToken cancellationToken) { // Авторизация списка уже проверена в AuthorizationBehavior через IRequiresListAuthorization // Для lookup-полей проверяем, что в списке есть lookup-поле, использующее указанный lookupFieldId // или что само поле принадлежит списку (для обратной совместимости) await _fieldsService.ValidateLookupFieldInList(request.ListId, request.LookupFieldId, cancellationToken); return await _factory.FieldValuesRepository.GetLookupValuesAsync(request.LookupFieldId, cancellationToken); } } }