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; } } }
//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(); }
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()); } } }
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; }
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); } }
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); } }
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); }
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)); }
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; } } }
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; }
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(); }
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; } } }
private void frmMenu_FormClosing(object sender, FormClosingEventArgs e) { GerenciadorDeClientesBanco.AtualizarBases(); GerenciadorDeContasBanco.AtualizarBases(); }