public IHttpActionResult GetCapitalizationPlan(DepositModelForCapitalizationPlan request) { try { var deposit = depositService.Get(request.DepositId); validationService.ValidateSum(request.Sum, deposit.MinSum, deposit.MaxSum, ModelState); validationService.ValidateMonthCount(request.MonthCount, deposit.MinMonthPeriod, deposit.MaxMonthPeriod, ModelState); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var plan = calculationDepositService.CalculateCapitalizationPlan(request.Sum, request.PercentRate, request.MonthCount, request.StartDate).ToList(); return(Ok(plan)); } catch (BankClientException ex) { return(BadRequest(ex.Message)); } catch (Exception ex) { return(InternalServerError(ex)); } }