Example #1
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 #2
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();
        }