public InvestmentHandlerTest() { _sut = new InvestmentHandler(_mockTesouroDireto.Object, _mockLicis.Object, _mockFundos.Object, _mockCalculation.Object); _lciResponse = new LciResponse { Lcis = new List <Lcis> { new Lcis { DataOperacao = Convert.ToDateTime("2015-03-01T00:00:00"), CapitalInvestido = 10000m, CapitalAtual = 12000m, Nome = "Selic", Vencimento = Convert.ToDateTime("2022-03-01T00:00:00"), } } }; _tesouroDireto = new TesouroDiretoResponse { TesourosDireto = new List <TesouroDireto> { new TesouroDireto { DataDeCompra = Convert.ToDateTime("2015-03-01T00:00:00"), ValorInvestido = 10000m, ValorTotal = 12000m, Nome = "Selic", Vencimento = Convert.ToDateTime("2022-03-01T00:00:00"), } } }; _fundosResponse = new FundosResponse { Fundos = new List <Fundos> { new Fundos { DataCompra = Convert.ToDateTime("2015-03-01T00:00:00"), CapitalInvestido = 10000m, ValorAtual = 12000m, Nome = "Selic", DataResgate = Convert.ToDateTime("2022-03-01T00:00:00"), } } }; }
private async Task <InvestimentosResponse> Investimentos() { DateTime dataConsulta = DateTime.Now; TesouroDiretoResponse tesouro = await _tesouroDiretoService.Get(); RendaFixaResponse rendaFixa = await _rendaFixaService.Get(); FundosResponse fundos = await _fundosService.Get(); InvestimentosResponse investimentos = new InvestimentosResponse(); PopulaTsouro(dataConsulta, tesouro, investimentos); PopulaRendaFixa(dataConsulta, rendaFixa, investimentos); PopulaFundos(dataConsulta, fundos, investimentos); return(investimentos); }
private static void PopulaFundos(DateTime dataConsulta, FundosResponse fundos, InvestimentosResponse response) { foreach (var investimento in fundos.Fundos) { decimal taxa = VerificaTaxaPeriodo(dataConsulta, investimento.DataCompra, investimento.DataResgate); decimal valorResgate = CalcularValorMenosTaxa((investimento.ValorAtual), taxa); response.ValorTotal += investimento.ValorAtual; response.Investimentos.Add(new Investimento() { Nome = investimento.Nome, ValorInvestido = investimento.CapitalInvestido, ValorTotal = investimento.ValorAtual, Vencimento = investimento.DataResgate, Ir = CalcularIr(investimento.CapitalInvestido, investimento.ValorAtual, taxaInvestimentoFundos), ValorResgate = valorResgate }); } }