Example #1
0
        public async Task <IActionResult> RejeitaPedido(UpdatePedidoRequest updatePedido)
        {
            var command = new UpdatePedidoCommand(updatePedido, 3);
            var result  = await Mediator.Send(command);

            return(await ResponseBase(result));
        }
Example #2
0
        public async Task <BaseResponse <PedidoResponse> > Handle(UpdatePedidoCommand request, CancellationToken cancellationToken)
        {
            var response = new BaseResponse <PedidoResponse>();

            var pedido = _dbContext.PedidosMatch
                         .Include(p => p.IdStatusSolicitacao)
                         .Where(p => p.IdUserSolicitante == request.UpdateRequest.IdUserSolicitante)
                         .Where(p => p.IdUserAprovador == request.UpdateRequest.IdUserAprovador);

            if (!pedido.Any())
            {
                response.SetValidationErrors(new[] { "Pedido de Match não encontrado" });
            }
            else
            {
                var pedidoLista = pedido.ToList();

                if (!pedidoLista[0].IdStatusSolicitacao.Id.Equals(1))
                {
                    response.SetValidationErrors(new[] { "Pedido de Match já respondido" });
                }
                else
                {
                    pedidoLista[0].IdStatusSolicitacao = await _dbContext.StatusPedido.FindAsync((request.UpdateRequest.Action));

                    pedidoLista[0].DataAceite = System.DateTime.Now;

                    if (request.UpdateRequest.Action == 2)
                    {
                        Match match = new Match
                        {
                            IdUser      = request.UpdateRequest.IdUserSolicitante,
                            IdAmigo     = request.UpdateRequest.IdUserAprovador,
                            dataConexao = System.DateTime.Now
                        };

                        Match matchAmigo = new Match
                        {
                            IdUser      = request.UpdateRequest.IdUserAprovador,
                            IdAmigo     = request.UpdateRequest.IdUserSolicitante,
                            dataConexao = System.DateTime.Now
                        };

                        await _dbContext.Matches.AddAsync(match);

                        await _dbContext.Matches.AddAsync(matchAmigo);

                        _dbContext.PedidosMatch.Remove(pedidoLista[0]);
                    }

                    await _dbContext.SaveChangesAsync(cancellationToken);

                    response.SetIsOk(null);
                }
            }

            return(response);
        }