public CreditoView ValidarCredito(SolicitacaoCreditoView solicitacaoCredito) { var creditoView = new CreditoView(); ICreditoValor verificarValorMaximo = new VerificarValorMaximo(); ICreditoValor verificarValorTipoCredito = new VerificarValorTipoCredito(); ICreditoValor verificarQuantidadeParcelas = new VerificarQuantidadeParcealas(); ICreditoValor verificarDataPrimeiraParcela = new VerificarDataPrimeiraParcela(); verificarValorMaximo.Proximo = verificarValorTipoCredito; verificarValorTipoCredito.Proximo = verificarQuantidadeParcelas; verificarQuantidadeParcelas.Proximo = verificarDataPrimeiraParcela; var validacoes = verificarValorMaximo.Valor(solicitacaoCredito.ValorCredito, solicitacaoCredito.TipoCredito, solicitacaoCredito.QtdParcelas, solicitacaoCredito.DataPrimeiraParcela); if (!validacoes.Item3) { creditoView.Aprovado = validacoes.Item3; creditoView.StatusCrediro = validacoes.Item1; creditoView.ValorTotalComJuros = validacoes.Item2; creditoView.ValorDosJuros = 0; return(creditoView); } IJuros verificarJurosTipoCredito = new JurosTipoCredito(); IJuros calcularValores = new CalcularValorFinal(); verificarJurosTipoCredito.Proximo = calcularValores; var credito = verificarJurosTipoCredito.Valor(solicitacaoCredito.ValorCredito, solicitacaoCredito.TipoCredito, solicitacaoCredito.QtdParcelas, 0); creditoView.Aprovado = credito.Aprovado; creditoView.StatusCrediro = credito.StatusCrediro; creditoView.ValorTotalComJuros = credito.ValorTotalComJuros; creditoView.ValorDosJuros = credito.ValorDosJuros; return(creditoView); }
public CreditoView Valor(decimal valorCredito, string tipoCredito, int qtdParcelas, int jurosMes) { var valorTotalComJuros = valorCredito; for (int i = 1; i <= qtdParcelas; i++) { valorTotalComJuros = valorTotalComJuros * (1 + Convert.ToDecimal(jurosMes / 100M)); } var totalDeJuros = valorTotalComJuros - valorCredito; var creditoView = new CreditoView() { Aprovado = true, StatusCrediro = $"Aprovado. Crédito liberado no valor de R$ {valorCredito}", ValorTotalComJuros = Math.Round(valorTotalComJuros, 2), ValorDosJuros = Math.Round(totalDeJuros, 2) }; return(creditoView); }