public void UpdateFundoMes(Fundo fundo) { _fundoMes = fundo.Meses.FirstOrDefault(m => m.Mes == Mes) ?? new FundoMes() { Fundo = fundo }; _fundoMes.Mes = Mes; _fundoMes.CotaValor = _cotaValor; _fundoMes.RendimentoMes = ExtratoReader.GetMovimentoValor(_rendimentos.ElementAt(0)); _fundoMes.RendimentoAno = ExtratoReader.GetMovimentoValor(_rendimentos.ElementAt(1)); _fundoMes.Rendimento12Meses = ExtratoReader.GetMovimentoValor(_rendimentos.ElementAt(2)); if (_fundoMes.FundoMesId == 0) { fundo.Meses.Add(_fundoMes); } }
public FundoNoExtrato(IReadOnlyList <string> textoAsArray, int index) { Nome = textoAsArray[index].Substring(0, 40).Trim(); CNPJ = ExtratoReader.GetCNPJ(textoAsArray[index], true); var extrato = textoAsArray.Skip(index + 1).TakeWhile(r => !r.StartsWith("BB")); var movs = extrato.Skip(3).TakeWhile(r => !r.StartsWith("---")); _cotaValor = ExtratoReader.GetMovimentoValor(extrato.Skip(movs.Count() + 7).Take(1).First()); _rendimentoBruto = ExtratoReader.GetMovimentoValor(extrato.First(r => r.StartsWith("RENDIMENTO BRUTO"))); _rendimentos = extrato.SkipWhile(r => !r.StartsWith("No mês:")).Take(3); _movimentos = movs.Where(m => ExtratoReader.GetDate(m.Substring(0, 10)) != null) .Select(m => new Movimento(m)); var mes = _movimentos.Last().Data; Mes = mes.AddDays(1 - mes.Day); }