Example #1
0
        public static void DadosEntrada(out decimal valor, out int pagamento, out OpcoesPagamento formaPagamento)
        {
            Clear();
            var i = 0;

            string[]        formasPagamentos = GetNames(typeof(OpcoesPagamento));
            Action <string> action           = new Action <string>(v => WriteLine($"{++i} - {v}"));
            Predicate <int> predicate        = new Predicate <int>(x => x >= 0 && x <= i);

            Write("Valor do pagamento: R$");
            valor = ToDecimal(ReadLine().ValorReal());
            WriteLine("Opção de Pagamento: ");
            (formasPagamentos.Lista()).ForEach(action);
            Write("Digite a opção(número): ");
            pagamento = ToInt32(ReadLine());
            if (!predicate(pagamento))
            {
                DadosEntrada(out valor, out pagamento, out formaPagamento);
            }
            formaPagamento = (OpcoesPagamento)Parse(typeof(OpcoesPagamento), (string)formasPagamentos.GetValue(--pagamento));
        }
Example #2
0
        public Retorno RealizarDebito(decimal valor, OpcoesPagamento opcaoPagamento)
        {
            OpcoesTransacoes transacao = (OpcoesTransacoes)opcaoPagamento;

            if (valor <= 0)
            {
                throw new System.Exception("Cod:Pag-RD, Valor Informado inválido");
            }
            switch (opcaoPagamento)
            {
            case OpcoesPagamento.Boleto:
                WriteLine(Boleto(valor));
                break;

            case OpcoesPagamento.Cartao:
                WriteLine(Cartao(valor));
                break;

            case OpcoesPagamento.Cheque:
                WriteLine(Cheque(valor));
                break;

            case OpcoesPagamento.DebitoConta:
                DebitarConta(valor);
                WriteLine($"Valor debitado R${valor}");
                break;

            case OpcoesPagamento.Paypal:
                WriteLine(Paypal(valor));
                break;

            default:
                throw new System.Exception("Cod:Pag-RD, Forma de Pagamento Inválida");
            }
            RegistrarTransacao(transacao, valor);
            return(new Retorno()
            {
                Sucesso = true, Mensagem = "Transação de débito realizada com éxito"
            });
        }
 public void Fechar(decimal valor, OpcoesPagamento opcoesPagamento) => Pagar(valor, opcoesPagamento); // delegação...