コード例 #1
0
        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));
            }
        }