public static ILoan CreateLoan(LoanDTO loanDto) { switch (loanDto.Type) { case LoanType.Series: return new SeriesLoan {Amount = loanDto.Amount, Interest = loanDto.Interest, RepaymentYears = loanDto.RepaymentYears}; case LoanType.Anuity: return new AnuityLoan {Amount = loanDto.Amount, Interest = loanDto.Interest, RepaymentYears = loanDto.RepaymentYears}; } throw new ArgumentException("Arguments could not be parsed correctly."); }
public HttpResponseMessage Post(LoanDTO loanDto) { if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } var loan = LoanFactory.CreateLoan(loanDto); var repaymentPlan = loan.CalculateRepaymentPlan(); return Request.CreateResponse(HttpStatusCode.OK, repaymentPlan); }