Ejemplo n.º 1
0
        private ResultadoDto SimularContribuicao(InformacoesDto informacoesDto, int idadeMinimaParaAposentar, int tempoMinimoContribuicao, double percentualAplicadoParaCalculo)
        {
            int quantidadeMesesAno      = 12;
            int idadeAtual              = GetIdade(informacoesDto.Nascimento);
            int tempoFaltaParaAposentar = idadeMinimaParaAposentar - idadeAtual;
            int tempoJaRealizado        = idadeAtual - informacoesDto.IdadeComQueComecouContribuicao;
            int tempoTotalRealizado     = tempoJaRealizado + tempoFaltaParaAposentar;

            if (tempoTotalRealizado < tempoMinimoContribuicao)
            {
                tempoFaltaParaAposentar += (tempoMinimoContribuicao - tempoTotalRealizado);
            }

            int      quantidadeContribuicoesParaPagarIniciandoMesAtual = (tempoFaltaParaAposentar * quantidadeMesesAno);
            DateTime dataUltimaContribuicao = DateTime.Now.AddMonths(quantidadeContribuicoesParaPagarIniciandoMesAtual);
            double   valorPagoMes           = GetValorContribuicao(informacoesDto, percentualAplicadoParaCalculo);

            SimulacaoDto simulacaoDto = _mapper.Map <SimulacaoDto>(informacoesDto);

            simulacaoDto.IdUsuario = _usuarioService.FindByNome(informacoesDto.Usuario).Id;

            Create(simulacaoDto);
            Resultado resultado = new Resultado(quantidadeContribuicoesParaPagarIniciandoMesAtual, dataUltimaContribuicao, valorPagoMes, percentualAplicadoParaCalculo, simulacaoDto.Id);

            _resultadoService.Create(resultado);
            return(_mapper.Map <ResultadoDto>(resultado));
        }
 public void CreateTest()
 => Assert.DoesNotThrow(() => _resultadoService.Create(new Resultado(504, DateTime.Parse("2062-07-13"), 3.75, 7.50, _simulacao.Id)));