Пример #1
0
        public ActionResult <IEnumerable <LoanPayment> > CalculateLoan(LoanCalculateRequest request)
        {
            _logger.LogInformation($"Received request to calculate loan payments");
            IEnumerable <LoanPayment> payments;

            try
            {
                payments = _loanService.CalculateLoanPayments(request.LoanId, request.LoanAmount, request.LoanYearsDuration);
            }
            catch (ArgumentException)
            {
                return(BadRequest());
            }
            catch (NotFoundException)
            {
                return(NotFound());
            }

            return(Ok(payments));
        }
Пример #2
0
        public LoanCalculateResult CalcDecreaseMonthLoan(LoanCalculateRequest request)
        {
            LoanCalculateResult   result   = new LoanCalculateResult();
            DecreasingMonthlyLoan loanType = new DecreasingMonthlyLoan();

            int   ratesAmount       = request.DurationInYears * loanType.RatesPerYear;
            float capitalRateAmount = request.Amount / ratesAmount;

            for (int i = 0; i < ratesAmount; i++)
            {
                float amountYetToPay    = request.Amount - (capitalRateAmount * i);
                float generatedInterest = amountYetToPay * (1f / loanType.RatesPerYear) * loanType.InterestPerYear;
                float rateAmount        = capitalRateAmount + generatedInterest;
                result.LoanRates.Add(rateAmount);
                // result.LoanCost = result.LoanCost + rateAmount;
            }

            result.LoanCost = result.LoanRates.Sum();

            return(result);
        }
Пример #3
0
 public LoanCalculateResult CalcDecreaseMonthLoan([FromBody] LoanCalculateRequest request)
 {
     return(loanService.CalcDecreaseMonthLoan(request));
 }