public ActionResult GetVesselObjects(JQueryDataTableParamModel param) { try { IEnumerable <VesselObject> filteredParentMenuObjects; var countG = 0; var pagedParentMenuObjects = GetVessels(param.iDisplayLength, param.iDisplayStart, out countG); if (!string.IsNullOrEmpty(param.sSearch)) { filteredParentMenuObjects = new VesselServices().Search(param.sSearch); countG = filteredParentMenuObjects.Count(); } else { filteredParentMenuObjects = pagedParentMenuObjects; } if (!filteredParentMenuObjects.Any()) { return(Json(new List <VesselObject>(), JsonRequestBehavior.AllowGet)); } var sortColumnIndex = Convert.ToInt32(Request["iSortCol_0"]); Func <VesselObject, string> orderingFunction = (c => sortColumnIndex == 1 ? c.CompanyName : sortColumnIndex == 2 ? c.Name : c.CapacityStr); var sortDirection = Request["sSortDir_0"]; // asc or desc filteredParentMenuObjects = sortDirection == "desc" ? filteredParentMenuObjects.OrderBy(orderingFunction) : filteredParentMenuObjects.OrderByDescending(orderingFunction); var displayedPersonnels = filteredParentMenuObjects; var result = from c in displayedPersonnels select new[] { Convert.ToString(c.VesselId), c.CompanyName, c.Name, c.CapacityStr }; return(Json(new { param.sEcho, iTotalRecords = countG, iTotalDisplayRecords = countG, aaData = result }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { ErrorLogger.LoggError(ex.StackTrace, ex.Source, ex.Message); return(Json(new List <VesselObject>(), JsonRequestBehavior.AllowGet)); } }