public ActionResult GetStates(JqGridSettings gridSettings)
        {
            var states = DatabaseDAL.GetAllStates();
            var stateList = new List<State>();
            foreach (var state in states)
            {
                stateList.Add(state);
            }

            int totalPages;
            int totalRecords;
            var allStates = stateList.AsQueryable();

            var results = jqGridDataManager.GetGridData<State>(gridSettings, allStates, out totalPages, out totalRecords);
            JqGridResult result = new JqGridResult()
            {
                Page = gridSettings.PageIndex,
                Records = totalRecords,
                Total = totalPages,
                Rows = results.ToList()
            };

            return Json(result, JsonRequestBehavior.AllowGet);

        }
Exemple #2
0
        // TODO: Move to more reasonable location.
        public static IQueryable <T> GetGridData <T>(
            JqGridSettings gridSettings,
            IQueryable <T> source,
            out int totalPages,
            out int totalRecords) where T : class
        {
            IQueryable <T> entities;

            if (gridSettings.IsSearch)
            {
                var parameters = new object[] { };
                var linq       = gridSettings.Where.ToDynamicStatement(out parameters);
                if (string.IsNullOrWhiteSpace(linq))
                {
                    totalRecords = source.Count();
                    entities     = source
                                   .OrderBy(string.Format("{0} {1}", gridSettings.SortColumn, gridSettings.SortOrder))
                                   .Skip((gridSettings.PageIndex - 1) * gridSettings.PageSize)
                                   .Take(gridSettings.PageSize);
                }
                else
                {
                    var searchResult = source.Where(linq, parameters);
                    totalRecords = searchResult.Count();
                    entities     = searchResult
                                   .OrderBy(string.Format("{0} {1}", gridSettings.SortColumn, gridSettings.SortOrder))
                                   .Skip((gridSettings.PageIndex - 1) * gridSettings.PageSize)
                                   .Take(gridSettings.PageSize);
                }
            }
            else
            {
                totalRecords = source.Count();
                entities     = source
                               .OrderBy(string.Format("{0} {1}", gridSettings.SortColumn, gridSettings.SortOrder))
                               .Skip((gridSettings.PageIndex - 1) * gridSettings.PageSize)
                               .Take(gridSettings.PageSize);
            }

            totalPages = (int)Math.Ceiling((float)totalRecords / (float)gridSettings.PageSize);

            return(entities);
        }
        public ActionResult GetCustomers(JqGridSettings gridSettings)
        {
            int totalPages;
            int totalRecords;
            var allProducts = DatabaseDAL.GetAllProductModels();

            var results =
                jqGridDataManager.GetGridData<ProductModel>(gridSettings,
                                                            allProducts,
                                                            out totalPages,
                                                            out totalRecords);
            JqGridResult result = new JqGridResult()
            {
                Page = gridSettings.PageIndex,
                Records = totalRecords,
                Total = totalPages,
                Rows = results.ToList()
            };

            return Json(result, JsonRequestBehavior.AllowGet);
        }