Beispiel #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));
        }
Beispiel #2
0
        public void FindByIdTest()
        {
            SimulacaoDto simulacaoDto = new SimulacaoDto(50, DateTime.Parse("1994-08-27"), 18, "M", "N", _usuarioDto.Id);

            _mockSimulacaoRepository.Setup(r => r.FindById(simulacaoDto.Id)).Returns(simulacaoDto);
            Assert.IsNotNull(_simulacaoService.FindById(simulacaoDto.Id));
        }
        public Simulacao Simular(SimulacaoDto simulacaoDto)
        {
            var parcelas = GetParcelas(simulacaoDto.Valor, simulacaoDto.QtdMeses, 0.06M, DateTime.Now, simulacaoDto.PrimeiraParcela);
            var valor    = parcelas.First().Valor *simulacaoDto.QtdMeses;
            var iof      = CalcularIof(simulacaoDto.Valor);

            return(new Simulacao
            {
                DataPagamento = DateTime.Now,
                Iof = iof,
                JurosMensal = 0.06M,
                JurosAnual = CalcularJurosAnual(0.06),
                Parcelas = parcelas,
                Valor = valor,
                ValorParcela = parcelas.First().Valor,
                ValorTotal = valor + iof
            });
        }
Beispiel #4
0
        public IActionResult CalcularSimulacao([FromQuery] SimulacaoDto simulacaoDto)
        {
            Simulacao resultadoSimulacao = _simulacaoService.Simular(simulacaoDto);

            return(Ok(resultadoSimulacao));
        }
Beispiel #5
0
 public void Remove(SimulacaoDto simulacaoDto)
 => _simulacaoRepository.Remove(_mapper.Map <Simulacao>(simulacaoDto));
Beispiel #6
0
 public void Update(SimulacaoDto simulacaoDto)
 => _simulacaoRepository.Update(_mapper.Map <Simulacao>(simulacaoDto));