public JsonResult UpdateWorkflowAll(DateTime month, string propertyCode, int state, int direction) { RevenueApprovalStatus workflowState = (RevenueApprovalStatus)state; if (!((AuthorizationProvider.CanReviewRevenue() && workflowState == RevenueApprovalStatus.Reviewed) || (AuthorizationProvider.CanApproveRevenue() && workflowState == RevenueApprovalStatus.Approved) || (AuthorizationProvider.CanFinalizeRevenue() && workflowState == RevenueApprovalStatus.Finalized))) { return(Forbidden()); } try { var dataProvider = new ReservationRevenueProvider(_dbContext); var nextState = dataProvider.MoveWorkflowAll(month, propertyCode, workflowState, direction); if (nextState != null) { return(Json(nextState, JsonRequestBehavior.AllowGet)); } else { return(Json("-1", JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { string message = string.Format("Change {0} Reservation workflow fails for property {1}. {2}", month.ToString("MM/dd/yyyy"), propertyCode, ex.Message + ex.StackTrace); return(InternalError(message, "-1", ex)); } }