コード例 #1
0
        public async Task <Pedido> RealizarPedido(RealizarPedidoRequest pedidoRequest, string userName)
        {
            // Encontra cliente pelo Usuário Logado (Token)
            var cliente = await _clienteRepository.GetByUserName(userName);

            if (cliente == null)
            {
                throw new Exception("Cliente não localizado");
            }
            // Cálcula a distância para o pedido
            var distancia = GEOCalculaDistancia.CalculaDistanciaEmKM(new GEOParams(LATITUDE, LONGITUDE, cliente.Latitude, cliente.Longitude));
            var pagamento = new PagamentoCartao(
                pedidoRequest.Bandeira,
                pedidoRequest.Numero,
                pedidoRequest.Vencimento,
                pedidoRequest.CodigoSeguranca,
                pedidoRequest.Valor,
                StatusCartao.aguardandoAprovacao
                );
            // Salva o pedido na base
            var pedido = new Pedido
            {
                Cliente             = cliente,
                DataHora            = DateTime.Now,
                Peso                = pedidoRequest.Peso,
                DistanciaParaOrigem = distancia,
                StatusPedido        = StatusPedido.aguardandoAprovacao,
                PagamentoCartao     = pagamento
            };
            //await _pedidoRepository.AddPedido(pedido);
            await _pedidoRepository.AddPedido(pedido);

            // Envia o pedido para Pagamento
            var pagamentoREquest = new CmmPagRequest()
            {
                Bandeira        = pagamento.Bandeira,
                CodigoSeguranca = pagamento.CodigoSeguranca,
                CreatedAt       = DateTime.Now,
                Name            = cliente.Nome,
                NumeroCartao    = pagamento.Numero,
                PayId           = pagamento.Id,
                Status          = StatusCartao.aguardandoAprovacao,
                Valor           = pagamento.Valor,
                Vencimento      = pagamento.Vencimento
            };
            var result = await _payAPIHandler.PostRealizarPagamento(pagamentoREquest);

            if (!result.IsSuccessStatusCode)
            {
                throw new Exception("Falha ao realizar o pagamento");
            }
            return(pedido);
        }
コード例 #2
0
        public void ReazliarPagamentoSucesso()
        {
            CmmPagRequest cmmPagRequest = new CmmPagRequest()
            {
                Bandeira        = "visa",
                CodigoSeguranca = 321,
                CreatedAt       = DateTime.Now,
                Name            = "Eric",
                NumeroCartao    = "321654",
                PayId           = new Guid(),
                Status          = StatusCartao.aguardandoAprovacao,
                Valor           = 321,
                Vencimento      = DateTime.Now
            };
            var result = payAPIHandler.PostRealizarPagamento(cmmPagRequest).Result;

            Assert.Equal(result.StatusCode, System.Net.HttpStatusCode.OK);
        }