Exemple #1
0
        public async Task <ReturnoModel> AnaliseCredito(CreditoModel credito)
        {
            ReturnoModel retorno = new ReturnoModel();
            var          erros   = await _validacaoService.ValidarCredito(credito);

            if (erros.Count > 0)
            {
                retorno.Status       = "Reprovado";
                retorno.MensagemErro = erros[0].ToString();
            }
            else
            {
                retorno = await CalcularCredito(credito);

                retorno.Status = "Aprovado";
            }
            return(retorno);
        }
Exemple #2
0
        public async Task <ReturnoModel> CalcularCredito(CreditoModel credito)
        {
            ReturnoModel retorno = new ReturnoModel();

            switch (credito.TipoCredito)
            {
            case TipoCreditoModel.Direto:
                //Juros de 2% ao mês
                decimal jurosDireto = Convert.ToDecimal(0.02);
                retorno.ValorJuros = credito.ValorCredito * jurosDireto * credito.QtdParcelas;
                retorno.ValorTotal = credito.ValorCredito + retorno.ValorJuros;
                break;

            case TipoCreditoModel.Consignado:
                //Juros de 1% ao mês
                decimal jurosConsignado = Convert.ToDecimal(0.01);
                retorno.ValorJuros = credito.ValorCredito * jurosConsignado * credito.QtdParcelas;
                retorno.ValorTotal = credito.ValorCredito + retorno.ValorJuros;
                break;

            case TipoCreditoModel.Pj:
                //Juros de 5% ao mês
                decimal jurosPj = Convert.ToDecimal(0.05);
                retorno.ValorJuros = credito.ValorCredito * jurosPj * credito.QtdParcelas;
                retorno.ValorTotal = credito.ValorCredito + retorno.ValorJuros;
                break;

            case TipoCreditoModel.Pf:
                //Juros de 3% ao mês
                decimal jurosPf = Convert.ToDecimal(0.03);
                retorno.ValorJuros = credito.ValorCredito * jurosPf * credito.QtdParcelas;
                retorno.ValorTotal = credito.ValorCredito + retorno.ValorJuros;
                break;

            case TipoCreditoModel.Imobiliario:
                //Juros de 9% ao mês
                decimal jurosImobiliario = Convert.ToDecimal(0.09);
                retorno.ValorJuros = credito.ValorCredito * jurosImobiliario * credito.QtdParcelas;
                retorno.ValorTotal = credito.ValorCredito + retorno.ValorJuros;
                break;
            }

            return(retorno);
        }