Example #1
0
        public async Task <IActionResult> GetPedidosEnviados(Guid id)
        {
            var query  = new GetPedidosEnviadosByIdQuery(id);
            var result = await Mediator.Send(query);

            return(await ResponseBase(result));
        }
Example #2
0
        public async Task <BaseResponse <PedidosMatchResponse> > Handle(GetPedidosEnviadosByIdQuery request, CancellationToken cancellationToken)
        {
            var pedidos = _dbContext.PedidosMatch
                          .Include(p => p.IdStatusSolicitacao)
                          .Where(p => p.IdUserSolicitante == request.UserId && p.IdStatusSolicitacao.Id == 1);

            var pedidosEnviados = pedidos.ToList();

            var response = new BaseResponse <PedidosMatchResponse>();

            if (!pedidosEnviados.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 pedidosEnviados)
                {
                    var user = await _userService.GetUser(p.IdUserAprovador);

                    var pedido = new PedidoResponse {
                        IdUser = p.IdUserAprovador, DataSolicitacao = p.DataSolicitacao, User = user
                    };
                    pedidosResponse.Add(pedido);
                }
                pedidosMatchResponse.Pedidos = pedidosResponse;
                response.SetIsOk(pedidosMatchResponse);
            }

            return(response);
        }