예제 #1
0
        public async Task <IActionResult> GetPedidosRecebidos(Guid id)
        {
            var query  = new GetPedidosRecebidosByIdQuery(id);
            var result = await Mediator.Send(query);

            return(await ResponseBase(result));
        }
예제 #2
0
        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);
        }