// Usuario escolhe o investimento com valor pré-estabelecido na lista public void AplicarInvestimento(Investimento investimento) { // Inserir na lista da contaContabil, e na lista de transações, e fazer as relações bilaterais // Se saldo for suficiente, instanciar uma Transação de aplicação(p/ extrato) e incluir na lista de transações o investimento em si if (SaldoSuficiente(investimento.ValorInicial)) { investimento.Status = "Aplicado"; investimento.Conta = this; Transacoes.Add(investimento); investimento.ContaContabil = BancoProp.ContaInvestimento; investimento.ContaContabil.Investimentos.Add(investimento); investimento.Valor = investimento.ValorInicial; Transacao t = new Transacao() { Tipo = "Aplicação", Conta = this, Valor = -investimento.ValorInicial, Data = DateTime.Today, Descricao = "Aplicação feita no investimento '" + investimento.Descricao + "'" }; Transacoes.Add(t); Saldo -= investimento.ValorInicial; } }
// Resgata o valor integral do investimento public void ResgatarInvestimento(Investimento investimento) { // Não precisa remover da lista da ContaContabil, status resgatado na lista Transacoes // Ações de rendimento ficam na classe de Investimento em si if (investimento.Status.Equals("Aplicado")) { investimento.Status = "Resgatado"; investimento.Valor = Math.Round(investimento.ValorInicial + investimento.CalcularRendimentoFinal(), 2); Transacao t = new Transacao() { Tipo = "Resgate", Conta = this, Valor = investimento.Valor, Data = DateTime.Today, Descricao = "Resgate do investimento '" + investimento.Descricao + "'" }; Transacoes.Add(t); Saldo += investimento.Valor; } }