public decimal CalculateMonthlyRepaymentsFor(LoanRequest loanRequest) { var loanAmount = (double)(loanRequest.AmountRequired); var rate = (double)(loanRequest.InterestRate / 100); var paymentVal = ((loanAmount * rate) / 12) * (1 / (1 - Math.Pow((1 / (1 + rate)), loanRequest.RepaymentPeriodInYears))); return decimal.Round((decimal)paymentVal, 2); }
public ActionResult Index(LoanRepaymentQueryViewModel loanRepaymentQueryViewModel) { var loanRequest = new LoanRequest(loanRepaymentQueryViewModel.RepaymentTerm, loanRepaymentQueryViewModel.LoanAmount, loanRepaymentQueryViewModel.InterestRate); loanRepaymentQueryViewModel.MonthlyRepaymentAmount = _repaymentCalculator.CalculateMonthlyRepaymentsFor(loanRequest).ToString(); return View(loanRepaymentQueryViewModel); }