Eu estou tentando fazer o "RendimentoAnual" da classe contas atualizar no "TextRendimento" toda vez que eu sacar ou depositar um valor.
tentei usar um
foreach (Conta conta in contas)
{
textRendimento.Text = Convert.ToString(conta.RendimentoAnual());
}
Mas somente o segundo item do comboBox atualiza, de acordo com o que eu altero o saldo do mesmo.
Conta[] contas;
Cliente[] clientes;
TotalizadorDeContas SaldoTotal = new TotalizadorDeContas();
public Form1()
{
InitializeComponent();
}
public void AtualizaRendimentoAnual()
{
foreach (Conta conta in contas)
{
textRendimento.Text = Convert.ToString(conta.RendimentoAnual());
}
}
private void Form1_Load(object sender, EventArgs e)
{
contas = new Conta[2];
clientes = new Cliente[2];
contas[0] = new Conta();
clientes[0] = new Cliente("Alexander");
contas[0].Titular = clientes[0];
contas[0].Numero = 1;
contas[0].Titular.idade = 18;
clientes[0].CPF = "123456789 - 00";
clientes[0].EEmancipado = true;
contas[0].Deposita(2500);
contas[1] = new Conta();
clientes[1] = new Cliente("Bassani");
contas[1].Titular = clientes[1];
contas[1].Numero = 2;
clientes[1].CPF = "987654321 - 00";
clientes[1].EEmancipado = true;
contas[1].Titular.idade = 18;
contas[1].Deposita(3000);
foreach (Conta conta in contas)
{
comboContas.Items.Add(conta.Titular.Nome);
}
foreach (Conta conta in contas)
{
comboTransfere.Items.Add(conta.Titular.Nome);
}
//Saldo Total
foreach (Conta conta in contas)
{
SaldoTotal.AdicionaConta(conta);
}
foreach (Conta conta in contas)
{
SaldoTotal.RetiraConta(conta);
}
foreach(Conta conta in contas)
{
conta.RendimentoAnual();
}
foreach(Conta conta in contas)
{
textRendimento.Text = Convert.ToString(conta.RendimentoAnual());
}
}
private void comboContas_SelectedIndexChanged(object sender, EventArgs e)
{
int indiceSelecionado = comboContas.SelectedIndex;
Conta contaSeleciona = contas[indiceSelecionado];
textTitular.Text = contaSeleciona.Titular.Nome;
textNúmero.Text = Convert.ToString(contaSeleciona.Numero);
textSaldo.Text = Convert.ToString(contaSeleciona.Saldo);
textCPF.Text = contaSeleciona.Titular.CPF;
textRendimento.Text = Convert.ToString(contaSeleciona.RendimentoAnual());
}
private void button1_Click(object sender, EventArgs e)
{
string numero = textValor.Text;
double valor = Convert.ToDouble(textValor.Text);
int indiceSelecionado = comboContas.SelectedIndex;
Conta contaSeleciona = contas[indiceSelecionado];
contaSeleciona.Saca(valor);
textSaldo.Text = Convert.ToString(contaSeleciona.Saldo);
this.AtualizaRendimentoAnual();
}
private void button2_Click(object sender, EventArgs e)
{
string numero = textValor.Text;
double valor = Convert.ToDouble(textValor.Text);
int indiceSelecionado = comboContas.SelectedIndex;
Conta contaSeleciona = contas[indiceSelecionado];
contaSeleciona.Deposita(valor);
textSaldo.Text = Convert.ToString(contaSeleciona.Saldo);
this.AtualizaRendimentoAnual();
}
private void button3_Click(object sender, EventArgs e)
{
string numero = textValor.Text;
double valor = Convert.ToDouble(textValor.Text);
int indiceSelecionado = comboContas.SelectedIndex;
Conta contaSeleciona = contas[indiceSelecionado];
int indiceSelecionado2 = comboTransfere.SelectedIndex;
Conta contaSeleciona2 = contas[indiceSelecionado2];
contaSeleciona.Transfere(valor, contaSeleciona2);
textSaldo.Text = Convert.ToString(contaSeleciona.Saldo);
this.AtualizaRendimentoAnual();
}
private void button4_Click(object sender, EventArgs e)
{
foreach(Conta conta in contas)
{
SaldoTotal.AdicionaConta(conta);
}
textSaldoTotal.Text = Convert.ToString(SaldoTotal.ValorTotal);
foreach (Conta conta in contas)
{
SaldoTotal.RetiraConta(conta);
}
this.AtualizaRendimentoAnual();
}
class Cliente
{
public string Nome { get; set; }
public string CPF { get; set; }
public string Endereco { get; set; }
public Cliente(string nome)
{
this.Nome = nome;
}
public int idade { get; set; }
public bool EEmancipado { get; set; }
public bool PodeAbrirConta
{
get
{
var MaiorDeIdade = this.idade >= 18;
var possuiCPF = !string.IsNullOrEmpty(this.CPF);
var emancipado = this.EEmancipado;
return (MaiorDeIdade || emancipado) && possuiCPF;
}
}
}
class Conta
{
public Cliente Titular { get; set; }
public int Numero { get; set; }
public double Saldo { get; protected set; }
public virtual bool Saca(double valor)
{
if (this.Saldo >= valor && valor > 0)
{
if (Titular.PodeAbrirConta)
{
this.Saldo -= valor;
return true;
}
else
{
if (valor <= 200)
{
this.Saldo -= valor;
return true;
}
else
{
return false;
}
}
}
else
{
return false;
}
}
public bool Deposita(double valor)
{
if (valor > 0)
{
this.Saldo += valor;
}
return true;
}
public void Transfere(double valor, Conta destinatario)
{
this.Saca(valor);
destinatario.Deposita(valor);
}
public virtual void AtualizaSaldo(double taxa)
{
this.Saldo -= Saldo * taxa;
}
public double RendimentoAnual()
{
double SaldoDoMes = this.Saldo;
for(int i = 1; i <= 12; i++)
{
SaldoDoMes *= 1.007;
}
double Rendimento =SaldoDoMes - this.Saldo;
return Rendimento;
}
}