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)); }
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...