public List <ResumoFinanceiro> PrevisaoRendimentos(int mesesPrevisao) { if (ConfigCiclos == null || !ConfigCiclos.Any()) { throw new ArgumentNullException("Configuração dos ciclos está vazia"); } ConfigCiclos ConfigAtual = ConfigCiclos.OrderBy(c => c.AnoMes) .FirstOrDefault(); List <ResumoFinanceiro> resumosFinanceiros = new List <ResumoFinanceiro>(); string AnoMes = ConfigAtual.AnoMes; DatasHelper.TrySplitAnoMes(ConfigAtual.AnoMes, out int ano, out int mes); double valorAtual = ValorBase; for (int i = 0; i < mesesPrevisao; i++) { ResumoFinanceiro resumoFinanceiro = ConfigAtual.Ciclo.RendimentoMensal(valorAtual, ano, mes); resumosFinanceiros.Add(resumoFinanceiro); DatasHelper.AvancaAnoMes(ref ano, ref mes); valorAtual = resumoFinanceiro.ValorTotal; ConfigAtual = PegarUltimoConfigData(ano, mes); } return(resumosFinanceiros); }
private ConfigCiclos PegarUltimoConfigData(int ano, int mes) { ConfigCiclos configCiclos = ConfigCiclos .Where(c => DatasHelper.CompareAnoMesWithSplitedAnoMes(c.AnoMes, ano, mes)) .OrderByDescending(c => c.AnoMes) .FirstOrDefault(); return(configCiclos); }