public ActionResult RendaFixa() { RendaFixaModel model = new RendaFixaModel(); model.Investimentos = new List <RendaFixaModel.InvestimentosModel>(); using (MyInvestsDataContext context = new MyInvestsDataContext()) { foreach (var investEntDB in context.InvestimentoRendaFixa.ToList()) { RendaFixaModel.InvestimentosModel novoModelInvestimento = new RendaFixaModel.InvestimentosModel(); novoModelInvestimento.Nome = investEntDB.Nome; novoModelInvestimento.DataCompra = investEntDB.DataCompra; novoModelInvestimento.DataVencimento = investEntDB.DataVencimento.Value; novoModelInvestimento.ValorCompra = investEntDB.ValorCompra; novoModelInvestimento.PosicaoInvestimento = context.InvestimentoRendaFixaPosicao.Where(x => x.IdInvestimento == investEntDB.Id) .Select(x => new RendaFixaModel.PosicaoInvestimentoModel() { DataReferencia = x.DataReferencia, TaxaIR = x.TaxaIR, ValorBrutoAtual = x.ValorAtual, ValorIR = x.ValorIR, ValorLiquidoAtual = x.ValorAtual - x.ValorIR, LucroLiquido = x.ValorAtual - investEntDB.ValorCompra }) .OrderByDescending(x => x.DataReferencia) .ToList(); for (int i = 0; i < novoModelInvestimento.PosicaoInvestimento.Count(); i++) { RendaFixaModel.VariacaoDataAnterior variacao = new RendaFixaModel.VariacaoDataAnterior(); var posicaoAtual = novoModelInvestimento.PosicaoInvestimento.ElementAtOrDefault(i); var posicaoAnterior = novoModelInvestimento.PosicaoInvestimento.ElementAtOrDefault(i + 1); if (posicaoAnterior != null) { variacao.VariacaoValorBruto = posicaoAtual.ValorBrutoAtual - posicaoAnterior.ValorBrutoAtual; variacao.VariacaoValorLiquido = posicaoAtual.ValorBrutoAtual - posicaoAnterior.ValorBrutoAtual; variacao.PercentualVariacaoBruta = variacao.VariacaoValorBruto / posicaoAnterior.ValorBrutoAtual; variacao.PercentualVariacaoLiquida = variacao.VariacaoValorLiquido / posicaoAnterior.ValorLiquidoAtual; } novoModelInvestimento.PosicaoInvestimento[i].Variacao = variacao; } model.Investimentos.Add(novoModelInvestimento); } } return(PartialView(model)); }
public InvestimentoModel Map(RendaFixaModel model) { try { if (model is null) { _logger.LogInformation("Parametro do tipo {type} nulo. Method: {method}", nameof(RendaFixaModel), nameof(Map)); return(default);
private async Task ValidateMapObject(RendaFixaModel rendaFixa, InvestimentoModel investimento) { if (rendaFixa is null) { investimento.Should().BeNull(); } else if (investimento is null) { investimento.Should().BeNull(); } else { investimento.Nome.Should().Be(rendaFixa.Nome); investimento.ValorInvestido.Should().Be(rendaFixa.CapitalInvestido); investimento.ValorTotal.Should().Be(rendaFixa.CapitalAtual); investimento.Vencimento.Should().Be(rendaFixa.Vencimento); investimento.Ir.Should().Be(rendaFixa.Ir); investimento.ValorResgate.Should().Be(rendaFixa.ValorResgate); } }