예제 #1
0
        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);
        }
예제 #2
0
        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);
        }