private bool ValidaEntrada(ParametrosCredito pc) { DateTime dtAtualMinino = DateTime.Now.AddDays(15); DateTime dtAtualMaximo = DateTime.Now.AddDays(40); if (pc.ValorCredito > 1000000) { return(false); } if (pc.QtdParcela > 72 || pc.QtdParcela < 5) { return(false); } if ((int)TipoCredito.CreditoPessoaJuridica == pc.TipoCredito && pc.ValorCredito < 15000) { return(false); } if (pc.DtPrimeiroVen < dtAtualMinino || pc.DtPrimeiroVen > dtAtualMaximo) { return(false); } return(true); }
public Resultado CalculaCredito(ParametrosCredito pc) { Resultado result = new Resultado(); decimal txJuros = 0; bool ok = ValidaEntrada(pc); if (ok) { switch (pc.TipoCredito) { case (int)TipoCredito.CreditoDireto: { txJuros = 2; break; } case (int)TipoCredito.CreditoConsignado: { txJuros = 1; break; } case (int)TipoCredito.CreditoPessoaJuridica: { txJuros = 5; break; } case (int)TipoCredito.CreditoPessoaFisica: { txJuros = 3; break; } case (int)TipoCredito.CreditoImobiliario: { txJuros = (9 / 12); break; } } /*Para este exercício, os juros são calculados da seguinte forma, incremente a porcentagem de juros no valor total do crédito.*/ var juros = (pc.ValorCredito * (pc.QtdParcela * txJuros) / 100); //var juros = (pc.ValorCredito * txJuros / 100); result.VtTotalComJuros = pc.ValorCredito + juros; result.VlJuros = (decimal)juros; result.Status = true; } return(result); }
static void Main(string[] args) { ParametrosCredito pc = new ParametrosCredito(); string entrada = string.Empty; decimal valorCredito = 0m; int tipoCredito = 0; int qtdParcela = 0; DateTime dtPrimeiroVen; // Valor Credito while (true) { Console.WriteLine("Informe o valor do crédito:"); entrada = Console.ReadLine(); if (!string.IsNullOrEmpty(entrada)) { bool success = decimal.TryParse(entrada, out valorCredito); if (success) { pc.ValorCredito = Convert.ToDecimal(entrada); break; } else { Console.WriteLine("Valor do crédito inválido."); } } else { Console.WriteLine("Valor do crédito não informado."); } } Console.WriteLine("\n"); //Tipo crédito while (true) { Console.WriteLine("Informe o código do tipo de crédito:"); Console.WriteLine("Cód - Tipo\n" + "1 - Credito Direto.\n" + "2 - Credito Consignado.\n" + "3 - Credito Pessoa Jurídica.\n" + "4 - Credito Pessoa Física.\n" + "5 - Credito Imobiliário.\n"); entrada = Console.ReadLine(); if (!string.IsNullOrEmpty(entrada)) { bool success = int.TryParse(entrada, out tipoCredito); if (success) { pc.TipoCredito = Convert.ToInt32(entrada); break; } else { Console.WriteLine("Tipo de crédito inválido."); } } else { Console.WriteLine("Tipo de crédito não informado."); } } Console.WriteLine("\n"); //QtdParcela while (true) { Console.WriteLine("Informe quantidade de parcelas ( Quantidade de parcelas máximas é de 72x e a mínima é de 5x ) :"); entrada = Console.ReadLine(); if (!string.IsNullOrEmpty(entrada)) { bool success = int.TryParse(entrada, out qtdParcela); if (success) { pc.QtdParcela = Convert.ToInt32(entrada); break; } else { Console.WriteLine("Quantidade de parcelas inválida."); } } else { Console.WriteLine("Quantidade de parcelas não informada."); } } Console.WriteLine("\n"); //DtVencimento while (true) { Console.WriteLine("Informe a data do primeiro vencimento( Deve ser preenchido no formato DD/MM/AAAA ):"); entrada = Console.ReadLine(); if (!string.IsNullOrEmpty(entrada)) { bool success = DateTime.TryParse(entrada, out dtPrimeiroVen); if (success) { pc.DtPrimeiroVen = Convert.ToDateTime(entrada); break; } else { Console.WriteLine("Formato de data inválido."); } } else { Console.WriteLine("Data não informada."); } } //Chama metodo de calculo RulesCredito rc = new RulesCredito(); Resultado result = rc.CalculaCredito(pc); Console.WriteLine("\n"); //Mostra resultado if (result.Status) { Console.WriteLine("Status do crédito 'APROVADO'"); Console.WriteLine(string.Format("Valor total com juros R${0}", result.VtTotalComJuros)); Console.WriteLine(string.Format("Valor do juros R${0}", result.VlJuros)); } else { Console.WriteLine("Status do crédito 'RECUSADO'."); } Console.ReadKey(); }