Exemple #1
0
        public void GravarCliente(Cliente cliente)
        {
            GravadorArquivo arquivo  = new GravadorArquivo();
            string          registro = cliente.ExibirCPF() + ";" + cliente.ExibirNome() + ";" + cliente.ExibirRG() + ";" + cliente.ExibirDataNascimento();

            arquivo.EscreverArquivo(arquivo.dirGravacao, "clientes.txt", registro);
        }
Exemple #2
0
        public void GravarConta(Conta cc)
        {
            GravadorArquivo arquivo  = new GravadorArquivo();
            string          registro = cc.ExibirNumero() + ";" + cc.ExibirCliente().ExibirCPF() + ";" + cc.RetornarSaldo(false) + ";" + cc.ExibirTipo();

            arquivo.EscreverArquivo(arquivo.dirGravacao, "contas.txt", registro);
        }
Exemple #3
0
        public bool Transferir(int numeroContaDeSaque, int numeroContaDeDeposito, double valorTransferencia)
        {
            var contaSaque    = ConsultarContaPorNumero(numeroContaDeSaque);
            var contaDeposito = ConsultarContaPorNumero(numeroContaDeDeposito);

            contaSaque.Sacar(valorTransferencia, false);
            contaDeposito.Depositar(valorTransferencia, false);

            GravadorArquivo comprovante = new GravadorArquivo();

            comprovante.EscreverArquivo(comprovante.dirGravacao, contaSaque.arquivoTransf, "******TRANSFERÊNCIA******");
            comprovante.EscreverArquivo(comprovante.dirGravacao, contaSaque.arquivoTransf, "");
            comprovante.EscreverArquivo(comprovante.dirGravacao, contaSaque.arquivoTransf, "CONTA SAQUE: " + contaSaque.ExibirNumero());
            comprovante.EscreverArquivo(comprovante.dirGravacao, contaSaque.arquivoTransf, "CORRENTISTA SAQUE: " + contaSaque.ExibirTitular());
            comprovante.EscreverArquivo(comprovante.dirGravacao, contaSaque.arquivoTransf, "");
            comprovante.EscreverArquivo(comprovante.dirGravacao, contaSaque.arquivoTransf, "CONTA DEPÓSITO: " + contaDeposito.ExibirNumero());
            comprovante.EscreverArquivo(comprovante.dirGravacao, contaSaque.arquivoTransf, "CORRENTISTA DEPÓSITO: " + contaDeposito.ExibirTitular());
            comprovante.EscreverArquivo(comprovante.dirGravacao, contaSaque.arquivoTransf, "");
            comprovante.EscreverArquivo(comprovante.dirGravacao, contaSaque.arquivoTransf, "VALOR: " + String.Format("{0:C}", valorTransferencia));
            comprovante.EscreverArquivo(comprovante.dirGravacao, contaSaque.arquivoTransf, "");
            comprovante.EscreverArquivo(comprovante.dirGravacao, contaSaque.arquivoTransf, "Feito em " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
            comprovante.EscreverArquivo(comprovante.dirGravacao, contaSaque.arquivoTransf, "*************************");
            comprovante.EscreverArquivo(comprovante.dirGravacao, contaSaque.arquivoLog, "OPERAÇÃO TRANSFERÊNCIA feita em " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));

            return(true);
        }
Exemple #4
0
        public void Sacar(double valor, bool emiteComprovante)
        {
            if (TemSaldo(valor))
            {
                this.saldo -= valor;
                if (emiteComprovante)
                {
                    GravadorArquivo comprovante = new GravadorArquivo();

                    StringBuilder log = new StringBuilder();
                    log.AppendLine("**********SAQUE**********");
                    log.AppendLine("");
                    log.AppendLine("CONTA: " + this.ExibirNumero());
                    log.AppendLine("CORRENTISTA: " + this.ExibirTitular());
                    log.AppendLine("VALOR BRUTO: " + String.Format("{0:C}", valor));
                    log.AppendLine("");
                    log.AppendLine("TRIBUTOS: " + String.Format("{0:C}", this.RetornarTaxa() * valor));
                    log.AppendLine("");
                    log.AppendLine("SALDO DISPONÍVEL: " + this.RetornarSaldoFormatado(false));
                    log.AppendLine("");
                    log.AppendLine("Feito em " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                    log.AppendLine("*************************");

                    comprovante.EscreverArquivo(comprovante.dirGravacao, arquivoSaque, log.ToString());
                    comprovante.EscreverArquivo(comprovante.dirGravacao, arquivoLog, "OPERAÇÃO SAQUE feita em " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                }
            }
            else
            {
                throw new SaldoInsuficienteException();
            }
        }
Exemple #5
0
        public void AtualizarBases()
        {
            GravadorArquivo arquivo = new GravadorArquivo();

            arquivo.SobreescreverArquivo(arquivo.dirGravacao, "clientes.txt");

            foreach (var cliente in this.Clientes)
            {
                GravarCliente(cliente);
            }
        }
Exemple #6
0
        public void AtualizarBases()
        {
            GravadorArquivo arquivo = new GravadorArquivo();

            arquivo.SobreescreverArquivo(arquivo.dirGravacao, "contas.txt");

            foreach (var conta in this.Contas)
            {
                GravarConta(conta);
            }
        }
Exemple #7
0
        public void Depositar(double valor, bool emiteComprovante)
        {
            this.saldo += valor;
            if (emiteComprovante)
            {
                GravadorArquivo comprovante = new GravadorArquivo();

                StringBuilder log = new StringBuilder();
                log.AppendLine("********DEPÓSITO********");
                log.AppendLine("");
                log.AppendLine("CONTA: " + this.ExibirNumero());
                log.AppendLine("CORRENTISTA: " + this.ExibirTitular());
                log.AppendLine("VALOR: " + string.Format("{0:C}", valor));
                log.AppendLine("");
                log.AppendLine("Feito em " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                log.AppendLine("*************************");

                comprovante.EscreverArquivo(comprovante.dirGravacao, arquivoDeposito, log.ToString());
                comprovante.EscreverArquivo(comprovante.dirGravacao, arquivoLog, "OPERAÇÃO DEPÓSITO feita em " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
            }
        }
Exemple #8
0
        public double RetornarSaldo(bool emiteComprovante)
        {
            if (emiteComprovante)
            {
                GravadorArquivo comprovante = new GravadorArquivo();

                StringBuilder log = new StringBuilder();
                log.AppendLine("**********SALDO**********");
                log.AppendLine("");
                log.AppendLine("CONTA: " + this.ExibirNumero());
                log.AppendLine("CORRENTISTA: " + this.ExibirTitular());
                log.AppendLine("");
                log.AppendLine("SALDO DISPONÍVEL: " + this.RetornarSaldoFormatado(false));
                log.AppendLine("");
                log.AppendLine("Feito em " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                log.AppendLine("*************************");

                comprovante.EscreverArquivo(comprovante.dirGravacao, arquivoSaldo, log.ToString());
                comprovante.EscreverArquivo(comprovante.dirGravacao, arquivoLog, "OPERAÇÃO SALDO feita em " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
            }

            return(this.saldo);
        }
        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;
                }
            }
        }