Ejemplo n.º 1
0
        public LoanApplicationResult ProcessLoan(LoanApplication application)
        {
            // Check loan qualification rules
            List <ILoanQualificationRule> failingRules = _loanApprovalRules.Where
                                                             (rule => rule.CheckLoanApprovalRule(application) == false).ToList();

            if (failingRules.Count > 0)
            {
                LoanApplicationResult result = LoanApplicationResult.CreateDeniedResult(application, failingRules);
                return(result);
            }

            // Determine interest rate
            double   interestRate;
            double   creditScore = application.CreditScore;
            LoanRate rate        = _loanRates.FirstOrDefault(r =>
                                                             creditScore >= r.LowerCreditScore &&
                                                             creditScore <= r.UpperCreditScore);

            interestRate = rate.InterestRate;

            if (application.ApplicantType.ToLower() == "premiere")
            {
                interestRate = rate.InterestRate - .01;
            }

            // Determine monthly payment
            double monthlyPayment = CalculateLoanPayment(loanAmount: application.LoanAmount,
                                                         termYears: application.Term.Years, interestRate: interestRate);

            return(LoanApplicationResult.CreateApprovedResult(application, interestRate, monthlyPayment));
        }
Ejemplo n.º 2
0
        public static async Task <LoanRate> GetRateByAge(Elegible value)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(ConfigurationManager.AppSettings["ApiLoanURL"]);

                HttpResponseMessage response = client.PostAsJsonAsync <Elegible>("RateByAge", value).Result;
                LoanRate            loanRate = JsonConvert.DeserializeObject <LoanRate>(await response.Content.ReadAsStringAsync());

                return(loanRate);
            }
        }