Esempio n. 1
0
        static void Main(string[] args)
        {
            Pagamento pb = new PagamentoBoleto(1, "Muito Bom!");

            Pagamento pc = new PagamentoCartao()
            {
                Id        = 1,
                Descricao = "Top",
                Valor     = 2000
            };

            PagamentoPix pix = new PagamentoPix()
            {
                Id        = 1,
                Descricao = "Uia",
                Valor     = 5000,
                Chave     = new Chave()
                {
                    Id    = 1,
                    Tipo  = "cpf",
                    Valor = 1000
                }
            };

            Console.WriteLine("Validação: " + pix.ValidaValor());

            //Console.WriteLine("Teste Protect: " + pix.ELegal());

            if (pix.IncluirPagamento())
            {
                Console.WriteLine(pix);
            }

            Console.ReadKey();
        }
        public async Task AtualizaStatusPagamento(PagamentoCartao pagtoRetornado)
        {
            // Atualiza o pagamento, caso encontre na base
            var pagto = (PagamentoCartao)_pagamentoRepository.GetById(pagtoRetornado.Id).Result;

            if (pagto == null)
            {
                throw new Exception("Pagamento não localizado");
            }
            // Atualiza status do pedido, conforme o status do pagamento foi retornado
            var pedido = await _pedidoRepository.GetPedidoByPagamento(pagto.Id);

            if (pedido == null)
            {
                throw new Exception("Pedido não localizado para o pagamento");
            }
            // Ajusta o status do pedido e pagamento
            pagto.Status        = pagtoRetornado.Status;
            pedido.StatusPedido = pagtoRetornado.Status == StatusCartao.aprovado
                ? StatusPedido.aguardandoEntrega
                : StatusPedido.reprovado;
            // Atualiza pagamento e pedido
            await _pagamentoRepository.UpdatePagamento(pagto);

            await _pedidoRepository.UpdatePedido(pedido);
        }
        public void TestaAdicionaPagamento()
        {
            var pagto = new PagamentoCartao("VISA", "9832.5252", DateTime.Now, 123, (decimal)520.52, StatusCartao.aguardandoAprovacao);

            _pagamentoRepository.AddPagamento(pagto).Wait();
            Assert.NotNull(pagto);
        }
Esempio n. 4
0
        public static PagamentoCartao ToPagamentoCartao(PagamentoViewModel pagamentoViewModel)
        {
            var pagamentoCartao = new PagamentoCartao(
                pagamentoViewModel.NumeroCartao,
                pagamentoViewModel.NomeCartao,
                pagamentoViewModel.MesVencimento,
                pagamentoViewModel.AnoVencimento,
                pagamentoViewModel.CodigoSeguranca);

            return(pagamentoCartao);
        }
        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);
        }
Esempio n. 6
0
 public string excluirpagamentosCartao(PagamentoCartao pagamentoCartao)
 {
     string erro = null;
     try
     {
         pagamentosCartao.DeleteObject(pagamentoCartao);
         db.SaveChanges();
     }
     catch (Exception ex)
     {
         erro = ex.Message;
     }
     return erro;
 }
Esempio n. 7
0
 public string adicionarPagamentosCartao(PagamentoCartao pagamentoCartao)
 {
     string erro = null;
     try
     {
         pagamentosCartao.AddObject(pagamentoCartao);
         db.SaveChanges();
     }
     catch (Exception ex)
     {
         erro = ex.Message;
     }
     return erro;
 }
Esempio n. 8
0
        public string adicionarPagamentosCartao(PagamentoCartao pagamentoCartao)
        {
            string erro = null;

            try
            {
                pagamentosCartao.AddObject(pagamentoCartao);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                erro = ex.Message;
            }
            return(erro);
        }
Esempio n. 9
0
        public string excluirpagamentosCartao(PagamentoCartao pagamentoCartao)
        {
            string erro = null;

            try
            {
                pagamentosCartao.DeleteObject(pagamentoCartao);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                erro = ex.Message;
            }
            return(erro);
        }
Esempio n. 10
0
        public string editarPagamentosCartao(PagamentoCartao pagamentoCartao)
        {
            string erro = null;
            try
            {
                if (pagamentoCartao.EntityState == System.Data.EntityState.Detached)
                {
                    pagamentosCartao.Attach(pagamentoCartao);
                }
                db.ObjectStateManager.ChangeObjectState(pagamentoCartao, System.Data.EntityState.Modified);

                db.SaveChanges();
            }
            catch (Exception ex)
            {
                erro = ex.Message;
            }
            return erro;
        }
Esempio n. 11
0
        public string editarPagamentosCartao(PagamentoCartao pagamentoCartao)
        {
            string erro = null;

            try
            {
                if (pagamentoCartao.EntityState == System.Data.EntityState.Detached)
                {
                    pagamentosCartao.Attach(pagamentoCartao);
                }
                db.ObjectStateManager.ChangeObjectState(pagamentoCartao, System.Data.EntityState.Modified);

                db.SaveChanges();
            }
            catch (Exception ex)
            {
                erro = ex.Message;
            }
            return(erro);
        }
Esempio n. 12
0
        public async Task <ActionResult> AtualizarStatusPagamento([FromBody] CmmPagRequest cmmPagRequest)
        {
            try
            {
                var pagamento = new PagamentoCartao(
                    cmmPagRequest.Bandeira,
                    cmmPagRequest.NumeroCartao,
                    cmmPagRequest.Vencimento,
                    cmmPagRequest.CodigoSeguranca,
                    cmmPagRequest.Valor,
                    cmmPagRequest.Status)
                {
                    Id = cmmPagRequest.PayId
                };
                await _pedidoHandler.AtualizaStatusPagamento(pagamento);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Esempio n. 13
0
        private void buttonCartão_Click(object sender, EventArgs e)
        {
            if (!VerificarCamposCartao())
            {
                Helper.ShowErro("Preencha os campos sobre o cartão para prosseguir!");
                return;
            }

            Ingresso ingresso = GerarIngresso();

            PagamentoCartao pagamentoCartao = new PagamentoCartao();

            pagamentoCartao.Valorapagar  = ingresso.Valorinteiro ? evento.Valoringresso : evento.Valoringresso / 2;
            pagamentoCartao.Nometitular  = textBoxNomeCartao.Text;
            pagamentoCartao.Numerocartao = textBoxNumeroCartao.Text;
            pagamentoCartao.Codseguranca = textBoxCodSegurancaCartao.Text;
            pagamentoCartao.Datavalidade = textBoxValidadeCartao.Text;

            ingresso.Pagamentocartaos.Add(pagamentoCartao);

            ingressoController.Save(ingresso);
            Helper.ShowSucesso("Compra efetuada com Sucesso!");
            Close();
        }
Esempio n. 14
0
        public static void RegistarPedidos()
        {
            Console.WriteLine("Registe a morada do cliente: ");

            Console.Write("Código morada: ");
            int IdMorada = int.Parse(Console.ReadLine());

            Console.Write("Rua: ");
            string rua = Console.ReadLine();

            Console.Write("Localidade: ");
            string localidade = Console.ReadLine();


            Morada morada = new Morada(IdMorada, rua, localidade);



            Console.WriteLine("Registe os dados do cliente: ");

            Console.Write("Código Cliente: ");
            int codigo = int.Parse(Console.ReadLine());

            Console.Write("Nome Cliente: ");
            string nome = Console.ReadLine();

            Console.Write("Email Cliente: ");
            string email = Console.ReadLine();


            Cliente cliente = new Cliente(codigo, nome, email, morada);



            Console.Write("Quantos pedidos?: ");
            int P = int.Parse(Console.ReadLine());


            for (int i = 1; i <= P; i++)
            {
                Console.Write("Digite os dados do " + i + "º item:");

                Console.Write("Código: ");
                int codigoPedido = int.Parse(Console.ReadLine());

                Console.Write("Dia: ");
                int dia = int.Parse(Console.ReadLine());

                Console.Write("Mês: ");
                int mes = int.Parse(Console.ReadLine());

                Console.Write("Ano: ");
                int ano = int.Parse(Console.ReadLine());


                Pedido pedido = new Pedido(codigoPedido, dia, mes, ano, cliente);


                Console.Write("Quantos itens tem o pedido?: ");
                int N = int.Parse(Console.ReadLine());


                for (int e = 1; e <= N; e++)
                {
                    Console.Write("Digite os dados do " + e + "º item:");
                    Console.Write("produto (codigo): ");
                    int CodProduto = int.Parse(Console.ReadLine());
                    int pos        = Program.produto.FindIndex(x => x.IdProduto == CodProduto);
                    if (pos == -1)
                    {
                        throw new ModelExpecetion("Código de produto não encontrado " + CodProduto);
                    }
                    Console.Write("Quantidade: ");
                    int qte = int.Parse(Console.ReadLine());

                    Console.Write("Percentagem de desconto: ");
                    double desconto = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);


                    ItemPedido itemPedido = new ItemPedido(desconto, qte, Program.produto[pos].Preco, pedido, Program.produto[pos]);
                    pedido.itens.Add(itemPedido);


                    Console.Write("Pagamento será feito em cartão ou referência (C/R)? ");
                    char ch = char.Parse(Console.ReadLine());
                    if (ch == 'c')
                    {
                        Console.Write("Referência ");
                        int parcela = int.Parse(Console.ReadLine());


                        Pagamento c = new PagamentoCartao(parcela, EstadoPagamento.Aceite);

                        pedido.pagamento.Add(c);

                        Console.WriteLine(c);
                    }
                    else
                    {
                        Console.Write("Dia: ");
                        int day = int.Parse(Console.ReadLine());

                        Console.Write("Mês: ");
                        int mon = int.Parse(Console.ReadLine());

                        Console.Write("Ano: ");
                        int year = int.Parse(Console.ReadLine());


                        Pagamento r = new PagamentoReferencia(day, mon, year, EstadoPagamento.Aceite);

                        pedido.pagamento.Add(r);

                        Console.WriteLine(r);
                    }

                    Program.Pedido.Add(pedido);
                }
            }
        }