Exemplo n.º 1
0
        private static void MenuDaConta(Conta conta, ITributavel tributo = null)
        {
            string        key   = "";
            StringBuilder comp  = new StringBuilder();
            double        valor = 0;
            var           caminhoComprovantes = "D:\\Users\\314171\\Desktop\\CodingDojo C#\\CaixaEletronico_Exemplo\\Comprovantes.txt";
            var           caminhoLogs         = "D:\\Users\\314171\\Desktop\\CodingDojo C#\\CaixaEletronico_Exemplo\\Logs.txt";
            var           leitor              = new LeitorArquivo();
            var           gravador            = new GravadorArquivo();
            var           retornoComprovantes = leitor.LerLinhasArquivo(caminhoComprovantes);
            var           retornoLogs         = leitor.LerLinhasArquivo(caminhoLogs);

            while (key.ToUpper() != "Q")
            {
                Console.Clear();

                Console.WriteLine("Cliente: {0}!", conta.ExibirTitular());
                Console.WriteLine("CPF: {0}", conta.ExibirCpf());
                Console.WriteLine("Data de Nascimento: {0}\n", conta.ExibirDataNascimento());
                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);
                    Console.WriteLine();
                    Console.WriteLine("Saldo Atual: {0}", conta.saldo);
                    key = PressioneParaContinuar();
                    break;

                case "2":
                    Console.Clear();
                    Console.Write("Informe o valor a sacar: ");
                    valor = Convert.ToDouble(Console.ReadLine());
                    conta.Sacar(valor);
                    Console.WriteLine();
                    Console.WriteLine("Saldo Atual: {0}", conta.saldo);
                    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: " + conta.RetornarSaldo());
                    key = PressioneParaContinuar();
                    break;

                case "5":
                    if (tributo != null)
                    {
                        Console.Clear();
                        Console.WriteLine("Conta: " + conta.ExibirNumero());
                        Console.WriteLine("Titular: " + conta.ExibirTitular());
                        Console.WriteLine("Total de Tributos: " + tributo.CalcularTributo());
                        conta.MostrarTributos();
                    }
                    else
                    {
                        Console.WriteLine("Função inexistente");
                    }

                    key = PressioneParaContinuar();
                    break;

                default:
                    break;
                }
            }
        }