using Brizco.Domain.Dtos.LargeDtos; namespace Brizco.Repository.Handlers.Position; public class GetPositionQueryHandler : IRequestHandler { private readonly IRepositoryWrapper _repositoryWrapper; public GetPositionQueryHandler(IRepositoryWrapper repositoryWrapper) { _repositoryWrapper = repositoryWrapper; } public async Task Handle(GetPositionQuery request, CancellationToken cancellationToken) { var shift = await _repositoryWrapper.SetRepository() .TableNoTracking .Where(s => s.Id == request.Id) .Select(PositionMapper.ProjectToLDto) .FirstOrDefaultAsync(cancellationToken); if (shift == null) throw new AppException("Position not found", ApiResultStatusCode.NotFound); return shift; } }