private static void MenuDaConta(Conta conta, ITributavel tributo = null) { string key = ""; double valor = 0; while (key.ToUpper() != "Q") { Console.Clear(); Console.WriteLine("Nome do Cliente: " + conta.ExibirTitular()); Console.WriteLine("Número da Conta: " + conta.ExibirNumero()); Console.WriteLine(); Console.WriteLine("1 - Depositar."); Console.WriteLine("2 - Sacar."); Console.WriteLine("3 - Transferir."); Console.WriteLine("4 - Ver Saldo."); Console.WriteLine("5 - Resumo Tributário."); Console.WriteLine("Q - Para Sair"); Console.WriteLine(); Console.Write("Informe um valor: "); key = Convert.ToString(Console.ReadLine()); switch (key) { case "1": Console.Clear(); Console.Write("Informe o valor a depositar: "); valor = Convert.ToDouble(Console.ReadLine()); conta.Depositar(valor, true); Console.WriteLine(); Console.WriteLine("Saldo Atual: " + conta.RetornarSaldoFormatado(false)); key = PressioneParaContinuar(); break; case "2": Console.Clear(); Console.Write("Informe o valor a sacar: "); valor = Convert.ToDouble(Console.ReadLine()); conta.Sacar(valor, true); Console.WriteLine(); Console.WriteLine("Saldo Atual: " + conta.RetornarSaldoFormatado(false)); key = PressioneParaContinuar(); break; case "3": Console.Clear(); if (GerenciadorDeContasBanco.ExisteContaPorNumero(conta.ExibirNumero())) { Console.Write("Informe o número da Conta de Depósito: "); int numeroContaDeDeposito = Convert.ToInt32(Console.ReadLine()); if (GerenciadorDeContasBanco.ExisteContaPorNumero(numeroContaDeDeposito)) { Console.Write("Informe o valor da transferência: "); var valorTransferencia = Convert.ToDouble(Console.ReadLine()); string msgOperacao = "Transferência feita com sucesso!"; if (!GerenciadorDeContasBanco.Transferir(conta.ExibirNumero(), numeroContaDeDeposito, valorTransferencia)) { msgOperacao = "Transferência não foi realizada com sucesso. Tente novamente"; } Console.WriteLine(msgOperacao); } else { throw new ContaInexistenteException(); } } else { throw new ContaInexistenteException(); } key = PressioneParaContinuar(); break; case "4": Console.Clear(); Console.WriteLine("Saldo Atual: " + String.Format("{0:C}", conta.RetornarSaldo(true))); key = PressioneParaContinuar(); break; case "5": Console.Clear(); Console.WriteLine("Conta: " + conta.ExibirNumero()); Console.WriteLine("Titular: " + conta.ExibirTitular()); Console.WriteLine("Total de Tributos: " + CalcularTaxaOtimizada(conta)); key = PressioneParaContinuar(); break; default: break; } } }