Example #1
0
        public static void CarregarContas()
        {
            LeitorArquivo  arquivo = new LeitorArquivo();
            IList <string> contas  = arquivo.LerLinhasArquivo(arquivo.dirLeitura, "contas.txt");

            foreach (var conta in contas)
            {
                string[] lerConta = conta.Split(';');
                var      cliente  = GerenciadorDeClientesBanco.ConsultarClientePorCPF(lerConta[1]);
                switch (lerConta[3])
                {
                case "1":
                    var novaContaC = new ContaCorrente(int.Parse(lerConta[0]), cliente, Double.Parse(lerConta[2]));
                    GerenciadorDeContasBanco.AdicionarConta(novaContaC);
                    break;

                case "2":
                    var novaContaP = new ContaPoupanca(int.Parse(lerConta[0]), cliente, Double.Parse(lerConta[2]));
                    GerenciadorDeContasBanco.AdicionarConta(novaContaP);
                    break;

                case "3":
                    var novaContaI = new ContaInvestimento(int.Parse(lerConta[0]), cliente, Double.Parse(lerConta[2]));
                    GerenciadorDeContasBanco.AdicionarConta(novaContaI);
                    break;

                default:
                    break;
                }
            }
        }
Example #2
0
        //Exemplo clássico generico
        private static T CriarContas <T>() where T : Conta
        {
            Console.Clear();

            Console.Write("Informe o número da Conta: ");
            int numero = Convert.ToInt32(Console.ReadLine());

            if (GerenciadorDeContasBanco.ContaValidaParaCriacao(numero))
            {
                var titular = CriarCliente <Cliente>();

                Console.Write("Informe o saldo da conta: ");
                double saldo = Convert.ToDouble(Console.ReadLine());

                // Cria um instancia generica, conforme o tipo!
                T conta = (T)Activator.CreateInstance(typeof(T), new object[] { numero, titular, saldo });

                GerenciadorDeContasBanco.AdicionarConta(conta);
                GerenciadorDeContasBanco.GravarConta(conta);

                return(conta);
            }

            throw new ContaExistenteException();
        }
Example #3
0
        private void btnTransferir_Click(object sender, EventArgs e)
        {
            double retNum;
            bool   ehNumerico = double.TryParse(txtTransfValor.Text, System.Globalization.NumberStyles.Currency, System.Globalization.NumberFormatInfo.InvariantInfo, out retNum);

            if (ehNumerico)
            {
                try
                {
                    GerenciadorDeContasBanco.Transferir(contaSelecionada.ExibirNumero(), int.Parse(txtTransfConta.Text), Convert.ToDouble(txtTransfValor.Text));
                    StringBuilder mensagem = new StringBuilder();
                    mensagem.AppendLine("Transferência efetuada com sucesso!");
                    mensagem.AppendLine("Conta Origem: " + contaSelecionada.ExibirNumero());
                    mensagem.AppendLine("Titular Origem: " + contaSelecionada.ExibirTitular());
                    mensagem.AppendLine("");
                    mensagem.AppendLine("Conta Destino: " + txtTransfConta.Text);
                    mensagem.AppendLine("Titular Destino: " + lblTransfTitular.Text);
                    mensagem.AppendLine("");
                    mensagem.AppendLine("Valor: " + String.Format("{0:C}", Convert.ToDouble(txtTransfValor.Text)));
                    MessageBox.Show(mensagem.ToString(), "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    btnConsultarConta_Click(this, new EventArgs());
                }
            }
        }
Example #4
0
        private void btnConsultaCPF_Click(object sender, EventArgs e)
        {
            lstContas.Items.Clear();
            var con = lstContas.Columns.Count;

            if (GerenciadorDeClientesBanco.ExisteCliente(txtConsultaCPF.Text))
            {
                var cliente = GerenciadorDeClientesBanco.ConsultarClientePorCPF(txtConsultaCPF.Text);
                var contas  = GerenciadorDeContasBanco.ConsultarContaPorCliente(cliente);
                foreach (Conta conta in contas)
                {
                    lstContas.Items.Add(new ListViewItem(new string[] {
                        conta.ExibirNumero().ToString(),
                        conta.ExibirDescricao(),
                        conta.RetornarSaldoFormatado(false)
                    }));
                }
            }
            else
            {
                txtNovoClienteNome.Text            = string.Empty;
                txtNovoClienteRG.Text              = string.Empty;
                dtpNovoClienteDataNascimento.Value = DateTime.Now;
                pnlNovoCliente.Enabled             = true;
                btnGravarCliente.Enabled           = true;
            }

            pnlNovoCliente.Visible = true;
        }
Example #5
0
 private void btnTransfConsultaConta_Click(object sender, EventArgs e)
 {
     try
     {
         Conta contaTransf;
         if (GerenciadorDeContasBanco.ExisteContaPorNumero(int.Parse(txtTransfConta.Text)))
         {
             contaTransf                = GerenciadorDeContasBanco.ConsultarContaPorNumero(int.Parse(txtTransfConta.Text));
             lblTransfTitular.Text      = contaTransf.ExibirTitular();
             lblTransfTipoConta.Text    = contaTransf.ExibirDescricao();
             pnlTransfInfoConta.Visible = true;
             lblTransfValor.Visible     = true;
             txtTransfValor.Visible     = true;
         }
         else
         {
             MessageBox.Show("Conta não encontrada! Tente novamente.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information);
             txtTransfConta.Text = string.Empty;
             txtTransfConta.Focus();
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Dados da conta inválidos! Tente novamente.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Example #6
0
 private void btnConsultarConta_Click(object sender, EventArgs e)
 {
     try
     {
         if (GerenciadorDeContasBanco.ExisteContaPorNumero(int.Parse(txtNumeroConta.Text)))
         {
             contaSelecionada         = GerenciadorDeContasBanco.ConsultarContaPorNumero(int.Parse(txtNumeroConta.Text));
             lblNomeCliente.Text      = contaSelecionada.ExibirTitular() + "!";
             lblIdadeCliente.Text     = contaSelecionada.RetornarIdade().ToString() + " anos";
             lblTipoConta.Text        = contaSelecionada.ExibirDescricao();
             pnlAcoesConta.Visible    = true;
             pnlSaudacao.Visible      = true;
             pnlInstrucao.Visible     = false;
             pnlTransferencia.Visible = false;
             btnSaldo.Text            = "Ocultar Saldo";
             btnSaldo_Click(this, new EventArgs());
         }
         else
         {
             MessageBox.Show("Conta não encontrada! Tente novamente.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information);
             txtNumeroConta.Text = string.Empty;
             txtNumeroConta.Focus();
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Dados da conta inválidos! Tente novamente.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Example #7
0
        private void CriarContas <T>(int numero, Cliente titular, double saldo) where T : Conta
        {
            T conta = (T)Activator.CreateInstance(typeof(T), new object[] { numero, titular, saldo });

            GerenciadorDeContasBanco.AdicionarConta(conta);
            GerenciadorDeContasBanco.GravarConta(conta);
        }
Example #8
0
        private static double CalcularTaxaOtimizada(Conta conta)
        {
            IList <Conta> contasCli;

            contasCli = GerenciadorDeContasBanco.ConsultarContaPorCliente(conta.ExibirCliente());
            var menorTaxa = contasCli.Min(c => c.RetornarTaxa());

            return(menorTaxa * conta.RetornarSaldo(false));
        }
Example #9
0
        private static void MenuDoCliente(Cliente cliente)
        {
            string key = "";

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

                Console.WriteLine("Olá " + cliente.ExibirNome() + "! Você tem " + cliente.ExibirIdade() + " anos");
                Console.WriteLine();
                Console.WriteLine("Nome do Cliente: " + cliente.ExibirNome());
                Console.WriteLine("Número do CPF: " + cliente.ExibirCPF());
                Console.WriteLine();
                Console.WriteLine("1 - Exibir dados cadastrais completos.");
                Console.WriteLine("2 - Exibir saldos de contas.");
                Console.WriteLine("Q - Para Sair");

                Console.WriteLine();
                Console.Write("Informe um valor: ");
                key = Convert.ToString(Console.ReadLine());

                switch (key)
                {
                case "1":
                    Console.Clear();
                    Console.WriteLine("Nome do Cliente: " + cliente.ExibirNome());
                    Console.WriteLine("Número do CPF: " + cliente.ExibirCPF());
                    Console.WriteLine("Número do RG: " + cliente.ExibirRG());
                    Console.WriteLine("Data de Nascimento: " + cliente.ExibirDataNascimento().ToString("dd/MM/yyyy"));

                    key = PressioneParaContinuar();
                    break;

                case "2":
                    Console.Clear();
                    IList <Conta> contasCli;
                    contasCli = GerenciadorDeContasBanco.ConsultarContaPorCliente(cliente);
                    foreach (Conta conta in contasCli)
                    {
                        Console.WriteLine("Número da conta: " + conta.ExibirNumero());
                        Console.WriteLine("Tipo da conta: " + conta.ExibirDescricao());
                        Console.WriteLine("Saldo da conta: " + conta.RetornarSaldoFormatado(false));
                        Console.WriteLine();
                    }

                    key = PressioneParaContinuar();
                    break;

                default:
                    break;
                }
            }
        }
Example #10
0
 public void TelaNovaConta(string tipo)
 {
     tipoConta                  = tipo;
     pnlCliente.Visible         = false;
     this.tabMenu.Visible       = true;
     this.tabMenu.SelectedTab   = this.tabNovaConta;
     this.txtContaNumero.Text   = GerenciadorDeContasBanco.ProximoNumeroConta();
     this.txtClienteCPF.Text    = string.Empty;
     this.txtContaSaldo.Text    = "0";
     this.txtContaSaldo.Visible = false;
     this.lblContaSaldo.Visible = false;
 }
Example #11
0
        private void btnCriarConta_Click(object sender, EventArgs e)
        {
            if (GerenciadorDeContasBanco.ContaValidaParaCriacao(int.Parse(txtContaNumero.Text)))
            {
                Cliente cliente;
                if (GerenciadorDeClientesBanco.ExisteCliente(txtClienteCPF.Text) == false)
                {
                    cliente = new Cliente(txtClienteNome.Text, txtClienteRG.Text, txtClienteCPF.Text, dtpClienteDataNascimento.Value);
                    GerenciadorDeClientesBanco.AdicionarCliente(cliente);
                    GerenciadorDeClientesBanco.GravarCliente(cliente);
                }
                else
                {
                    cliente = GerenciadorDeClientesBanco.ConsultarClientePorCPF(txtClienteCPF.Text);
                }

                switch (tipoConta)
                {
                case "1":
                    CriarContas <ContaCorrente>(int.Parse(txtContaNumero.Text), cliente, double.Parse(txtContaSaldo.Text));
                    break;

                case "2":
                    CriarContas <ContaPoupanca>(int.Parse(txtContaNumero.Text), cliente, double.Parse(txtContaSaldo.Text));
                    break;

                case "3":
                    CriarContas <ContaInvestimento>(int.Parse(txtContaNumero.Text), cliente, double.Parse(txtContaSaldo.Text));
                    break;

                default:
                    break;
                }
            }
            MessageBox.Show("Gravado com sucesso!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
            this.PrepararTela();
        }
Example #12
0
        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;
                }
            }
        }
Example #13
0
 private void frmMenu_FormClosing(object sender, FormClosingEventArgs e)
 {
     GerenciadorDeClientesBanco.AtualizarBases();
     GerenciadorDeContasBanco.AtualizarBases();
 }