示例#1
0
        public ActionResult <Loan> PayLoan(PayLoanContract contract)
        {
            string errorString;

            if (_loanValidator.PayLoanIsValid(contract, out errorString))
            {
                return(BadRequest(new JsonResult(errorString)));
            }

            var loanItem = _loanRepository.GetLoanById(contract.LoanId);

            if (loanItem == null)
            {
                return(NotFound(new JsonResult("Loan is not found.")));
            }

            if (loanItem.Quantity - contract.Quantity < 0)
            {
                return(BadRequest(new JsonResult("Quantity you want to pay is bigger than amount left on the loan.")));
            }

            loanItem.Quantity -= contract.Quantity;
            _loanRepository.UpdateLoan(loanItem);

            return(Ok(loanItem));
        }