public async Task <IActionResult> GetPedidosRecebidos(Guid id) { var query = new GetPedidosRecebidosByIdQuery(id); var result = await Mediator.Send(query); return(await ResponseBase(result)); }
public async Task <BaseResponse <PedidosMatchResponse> > Handle(GetPedidosRecebidosByIdQuery request, CancellationToken cancellationToken) { var pedidos = _dbContext.PedidosMatch .Include(p => p.IdStatusSolicitacao) .Where(p => p.IdUserAprovador == request.UserId && p.IdStatusSolicitacao.Id == 1); var pedidosRecebidos = pedidos.ToList(); var response = new BaseResponse <PedidosMatchResponse>(); if (!pedidosRecebidos.Any()) { response.SetValidationErrors(new[] { "Não existem pedidos pendentes para o usuário informado" }); } else { var pedidosMatchResponse = new PedidosMatchResponse { IdUser = request.UserId }; var pedidosResponse = new List <PedidoResponse>(); foreach (var p in pedidosRecebidos) { var user = await _userService.GetUser(p.IdUserSolicitante); var pedido = new PedidoResponse { IdUser = p.IdUserSolicitante, DataSolicitacao = p.DataSolicitacao, User = user }; pedidosResponse.Add(pedido); } pedidosMatchResponse.Pedidos = pedidosResponse; response.SetIsOk(pedidosMatchResponse); } return(response); }