Exemple #1
0
        public int EfetuarPagamento(PagamentoContract pagamento)
        {
            using (var context = new PagamentosEntities())
            {
                var cartao = context.Cartoes.FirstOrDefault(c => c.NumeroCartao == pagamento.NumeroCartao);
                if (cartao == null)
                {
                    return(1);
                }

                var pedido = context.Pagamentos.FirstOrDefault(p => p.NumeroPedido == pagamento.NumeroPedido);
                if (pedido != null)
                {
                    return(2);
                }

                double valorTotalPedidos    = pagamento.Valor;
                var    pagamentosRealizados = context.Pagamentos.Where(p => p.NumeroCartao == pagamento.NumeroCartao);
                if (pagamentosRealizados.Count() > 0)
                {
                    valorTotalPedidos += pagamentosRealizados.Sum(s => s.Valor);
                }
                if (valorTotalPedidos > cartao.Limite)
                {
                    return(3);
                }
                Pagamento pagto = new Pagamento();
                pagto.NumeroCartao = pagamento.NumeroCartao;
                pagto.NumeroPedido = pagamento.NumeroPedido;
                pagto.Valor        = pagamento.Valor;
                context.Pagamentos.Add(pagto);
                context.SaveChanges();
                return(0);
            }
        }
        public int EfetuarPagamento(PagamentoContract pagamento)
        {
            /*
             * Valores de Retorno:
             * 0 - Pagamento OK
             * 1 - Cartão Inexistente
             * 2 - Pedido já pago
             * 3 - Limite indisponivel no cartão
             */

            using (var context = new PagamentosEntities())
            {
                //Verificação de existencia do cartão
                var cartao = context.Cartoes
                             .FirstOrDefault(c => c.NumeroCartao == pagamento.NumeroCartao);
                if (cartao == null)
                {
                    return(1);
                }

                //Verificação do pedido
                var pedido = context.Pagamentos
                             .FirstOrDefault(p => p.NumeroPedido == pagamento.NumeroPedido);
                if (pedido != null)
                {
                    return(2);
                }

                //Verificação do limite disponivel
                double valorPedidos = pagamento.Valor;

                var pagamentosRealizados = context
                                           .Pagamentos.Where(p => p.NumeroCartao == pagamento.NumeroCartao);
                if (pagamentosRealizados.Count() > 0)
                {
                    valorPedidos += pagamentosRealizados.Sum(s => s.Valor);
                }
                if (valorPedidos > cartao.Limite)
                {
                    return(3);
                }

                //Pagamento realizado
                Pagamento pagto = new Pagamento();
                pagto.NumeroCartao = pagamento.NumeroCartao;
                pagto.NumeroPedido = pagamento.NumeroPedido;
                pagto.Valor        = pagamento.Valor;

                context.Pagamentos.Add(pagto);
                context.SaveChanges();
                return(0);
            }
        }
Exemple #3
0
 public List <CartaoContract> ListarCartoes()
 {
     using (var context = new PagamentosEntities())
     {
         var cartoes = context.Cartoes;
         List <CartaoContract> lista = new List <CartaoContract>();
         foreach (var item in cartoes)
         {
             lista.Add(new CartaoContract()
             {
                 Id           = item.Id,
                 NumeroCartao = item.NumeroCartao,
                 Limite       = item.Limite
             });
         }
         return(lista);
     }
 }
Exemple #4
0
 public List <PagamentoContract> ListarPagamentos()
 {
     using (var context = new PagamentosEntities())
     {
         var pagamentos = context.Pagamentos;
         List <PagamentoContract> lista = new List <PagamentoContract>();
         foreach (var item in pagamentos)
         {
             lista.Add(new PagamentoContract
             {
                 Id           = item.Id,
                 NumeroCartao = item.NumeroCartao,
                 NumeroPedido = item.NumeroPedido,
                 Valor        = item.Valor
             });
         }
         return(lista);
     }
 }