private void VerificarSalvamento(string linha) { if (_dadosProntosParaSalvar && linha?.ToUpperInvariant() == BotoesEnum.SIM.ToString()) { Console.WriteLine(); Console.WriteLine("Simulando..."); Console.WriteLine(); var simulacaoJuros = new JurosDados(); try { simulacaoJuros.ValorAporteMensal = decimal.Parse(_dadosJuros[0].Valor); simulacaoJuros.TaxaJurosMensal = double.Parse(_dadosJuros[1].Valor); simulacaoJuros.TempoResgate = int.Parse(_dadosJuros[2].Valor); } catch (Exception e) { _erro = e.Message; Console.WriteLine("Erro ao persistir dados. Verifique os valores informados e tente novamente."); Console.ReadLine(); } try { var retorno = this._jurosRepositorio.PostJurosRepositorio(simulacaoJuros).GetAwaiter().GetResult(); this._jurosRepositorio.Salvar(new JurosSaida { Meses = retorno.TempoResgate, PatrimonioJurosComposto = retorno.JurosComposto, PatrimonioJurosSimples = retorno.JurosSimples, AporteMensal = simulacaoJuros.ValorAporteMensal, HorasSimulado = DateTime.Now }); Console.WriteLine("Simulação Efetuada com sucesso!"); Console.WriteLine($"Em {retorno.TempoResgate} mes(es) seu Patrimônio Acumulado em Juros Compostos terá um valor de" + $" R${Math.Round(retorno.JurosComposto, 2)} "); Console.WriteLine($"Em {retorno.TempoResgate} mes(es) seu Patrimônio Acumulado em Juros Simples terá um valor " + $"de R${Math.Round(retorno.JurosSimples, 2)} "); Console.WriteLine(); Console.WriteLine("Para simular novamente, basta pressionar ENTER."); Console.ReadLine(); } catch (Exception e) { if (e.Message == "Os valores informados devem ser maiores que 0.") { Console.WriteLine(e.Message); Console.WriteLine("Para simular novamente, basta pressionar ENTER."); Console.ReadLine(); } else { throw e; } } } }
public async Task <JurosApresentacao> GetJurosComposto(JurosDados entrada) { JurosApresentacao retorno = new JurosApresentacao(); if (entrada.TaxaJurosMensal <= 0 || entrada.TempoResgate <= 0 || entrada.ValorAporteMensal <= 0) { retorno.Erro = "Os valores informados devem ser maiores que 0."; throw new Exception("Os valores informados devem ser maiores que 0."); } else { HttpResponseMessage response = client.PostAsJsonAsync( "api/juros", entrada).GetAwaiter().GetResult(); response.EnsureSuccessStatusCode(); if (response.IsSuccessStatusCode) { retorno.Erro = null; var dados = await response.Content.ReadAsStringAsync(); retorno = JsonConvert.DeserializeObject <JurosApresentacao>(dados); } } return(retorno); }
private async Task <JurosApresentacao> InserirItensInvalidos() { var dados = new JurosDados { TaxaJurosMensal = 2, TempoResgate = 0, ValorAporteMensal = 0 }; return(await _fachada.GetJurosComposto(dados)); }
private static decimal CalcularJurosSimples(JurosDados entrada, decimal montante, decimal jurosSimples) { for (int i = 0; i < CalcularMeses(entrada); i++) { jurosSimples += (CalcularPorcentagemSobreMontante(montante, decimal.Parse(entrada.TaxaJurosMensal.ToString()))) + montante; } return(jurosSimples); }
private static decimal CalcularJurosComposto(JurosDados entrada, decimal montante, decimal jurosComposto, decimal valorInicialMontante) { for (int i = 0; i < CalcularMeses(entrada); i++) { valorInicialMontante = i == 0 ? (CalcularPorcentagemSobreMontante(montante, decimal.Parse(entrada.TaxaJurosMensal.ToString()))) + entrada.ValorAporteMensal : valorInicialMontante; jurosComposto += i == 0 ? valorInicialMontante : (montante * decimal.Parse(entrada.TaxaJurosMensal.ToString()) / 100) + valorInicialMontante; montante = jurosComposto; } return(jurosComposto); }
public async Task <JurosApresentacao> CalcularJurosComposto(JurosDados entrada) { decimal montante = entrada.ValorAporteMensal; decimal jurosSimples = 0; decimal jurosComposto = 0; decimal valorInicialMontante = 0; jurosSimples = CalcularJurosSimples(entrada, montante, jurosSimples); montante = entrada.ValorAporteMensal; jurosComposto = CalcularJurosComposto(entrada, montante, jurosComposto, valorInicialMontante); var jurosRetorno = new JurosApresentacao { JurosComposto = decimal.Parse(jurosComposto.ToString()), JurosSimples = decimal.Parse(jurosSimples.ToString()), TempoResgate = entrada.TempoResgate }; return(jurosRetorno); }
public async Task <JurosApresentacao> Get(JurosDados juros) { return(_jurosNegocio.CalcularJurosComposto(juros).GetAwaiter().GetResult()); }
public async Task <JurosApresentacao> PostJurosRepositorio(JurosDados entrada) { return(await _jurosFachada.GetJurosComposto(entrada)); }
private static int CalcularMeses(JurosDados entrada) { return(entrada.TempoResgate * 12); }