public static void Execute()
        {
            var produtos = new List <Produto>()
            {
                new Produto {
                    Id = Guid.NewGuid(), Descricao = "Alcool Gel 70 vol.", Valor = 15.01M
                },
                new Produto {
                    Id = Guid.NewGuid(), Descricao = "Mascara Especial", Valor = 27.35M
                },
                new Produto {
                    Id = Guid.NewGuid(), Descricao = "Roupa Especial", Valor = 150.50M
                },
            };

            var pedido = new Pedido(produtos)
            {
                Id         = new Random().Next(999999999),
                DataPedido = DateTime.Now,
                Valor      = 0.0M
            };

            var pagamento = new Pagamento(pedido, MeioPagamento.CartaoCredito)
            {
                CartaoCredito = new CartaoCredito
                {
                    NomeTitular     = "Fulano de Tal", //Faltou Bandeiras (Visa, AMEX, Dinners, etc)
                    NumeroCartao    = "1111-1111-1111-1111",
                    DataValidadeMes = "01",
                    DataValidadeAno = "30",
                    CodigoSeguranca = "123"
                }
            };


            var pedidoCredito    = new PedidoService(PagamentoFactory.CreatePagamento(MeioPagamento.CartaoCredito));
            var pagamentoCredito = pedidoCredito.RealizarPagamento(pedido, pagamento);

            var pedidoBoleto    = new PedidoService(PagamentoFactory.CreatePagamento(MeioPagamento.Boleto));
            var pagamentoBoleto = pedidoBoleto.RealizarPagamento(pedido, pagamento);

            var pedidoTransferencia    = new PedidoService(PagamentoFactory.CreatePagamento(MeioPagamento.TransferenciaBancaria));
            var pagamentoTransferencia = pedidoTransferencia.RealizarPagamento(pedido, pagamento);
        }
Пример #2
0
 public Pagamento RealizarPagamento(Pedido pedido, Pagamento pagamento)
 {
     return(_pagamento.RealizarPagamento(pedido, pagamento));
 }
Пример #3
0
        public static void Executar()
        {
            var produtos = new List <Produto>
            {
                new Produto {
                    Nome = "Tenis Adidas", Valor = new Random().Next(500)
                },
                new Produto {
                    Nome = "Camisa Boliche", Valor = new Random().Next(500)
                },
                new Produto {
                    Nome = "Raquete Tenis", Valor = new Random().Next(500)
                }
            };

            var pedido = new Pedido
            {
                Id       = Guid.NewGuid(),
                Produtos = produtos
            };

            var meioPagamentoCredito = new Pagamento
            {
                MeioPagamento = MeioPagamento.CartaoCredito,
                CartaoCredito = "5555 2222 5555 9999"
            };

            var meioPagamentoBoleto = new Pagamento
            {
                MeioPagamento = MeioPagamento.Boleto
            };

            var meioPagamentoTransferencia = new Pagamento
            {
                MeioPagamento = MeioPagamento.TransferenciaBancaria,
                CartaoCredito = "5555 2222 5555 9999"
            };

            #region Forma Simples

            var pedidoCredito = new PedidoService(
                new PagamentoCartaoCreditoService(
                    new PagamentoCartaoCreditoFacade(
                        new PayPalGateway(),
                        new ConfigurationManager())));
            var pagamentoCredito = pedidoCredito.RealizarPagamento(pedido, meioPagamentoCredito);
            Console.WriteLine(pagamentoCredito.Status);

            Console.WriteLine("-------------------------------------------------------");

            var pedidoBoleto = new PedidoService(
                new PagamentoBoletoService(
                    new PagamentoBoletoFacade()));

            var pagamentoBoleto = pedidoBoleto.RealizarPagamento(pedido, meioPagamentoBoleto);
            Console.WriteLine(pagamentoBoleto.Status);

            Console.WriteLine("-------------------------------------------------------");

            var pedidoTransferencia = new PedidoService(
                new PagamentoTransferenciaService(
                    new PagamentoTransferenciaFacade()));

            var pagamentoTransferencia = pedidoTransferencia.RealizarPagamento(pedido, meioPagamentoBoleto);
            Console.WriteLine(pagamentoTransferencia.Status);

            Console.WriteLine("-------------------------------------------------------");

            #endregion

            #region Forma Elegante

            var pedidoCredito2    = new PedidoService(PagamentoFactory.CreatePagamento(meioPagamentoCredito.MeioPagamento));
            var pagamentoCredito2 = pedidoCredito2.RealizarPagamento(pedido, meioPagamentoCredito);
            Console.WriteLine(pagamentoCredito2.Status);

            Console.WriteLine("-------------------------------------------------------");

            var pedidoBoleto2    = new PedidoService(PagamentoFactory.CreatePagamento(meioPagamentoBoleto.MeioPagamento));
            var pagamentoBoleto2 = pedidoBoleto2.RealizarPagamento(pedido, meioPagamentoBoleto);
            Console.WriteLine(pagamentoBoleto2.Status);

            Console.WriteLine("-------------------------------------------------------");

            var pedidoTransferencia2    = new PedidoService(PagamentoFactory.CreatePagamento(meioPagamentoTransferencia.MeioPagamento));
            var pagamentoTransferencia2 = pedidoTransferencia2.RealizarPagamento(pedido, meioPagamentoTransferencia);
            Console.WriteLine(pagamentoTransferencia2.Status);

            #endregion
        }