public async Task<JsonResult> Data([DataSourceRequest] DataSourceRequest request, string ownerLevel, string ownerId, string categoryId) { OwnerLevel oLevel; if (!Enum.TryParse(ownerLevel, true, out oLevel)) throw new Exception("Unknown OwnerLevel [" + ownerLevel ?? "" + "]"); var list = await _assignmentManager.GetCategoriesAndAssignmentsOfOwnerQueryAsync(oLevel, ownerId); var result = list.ToDataSourceResult(request); result.Data = (result.Data as ICollection<AssignmentListItemViewModel>) .OrderByDescending(x => x.CategoryName) .ThenByDescending(x => x.DueDT) .ToList(); return Json(result); }