public ClassLevelListViewModel GetClassLevelList(SearchClassesModel searchModel, int page = 1)
        {
            int pageSize = 20;

            if (page < 1)
            {
                page = 1;
            }

            IEnumerable <ClassLevel> records = db.ClassLevels.ToList();

            // Remove any default information
            //searchModel.ParseRouteInfo();

            if (!String.IsNullOrEmpty(searchModel.Name))
            {
                string name = searchModel.Name.ToLower();
                records = records.Where(x => x.HasStudent(searchModel.Name.ToLower()));
            }

            if (searchModel.Level.HasValue)
            {
                records = records.Where(x => x.SchoolLevel == searchModel.Level);
            }

            if (searchModel.StudyMode.HasValue)
            {
                records = records.Where(x => x.StudyMode == searchModel.StudyMode);
            }

            records = records.Where(x => !x.Deleted.HasValue);

            return(new ClassLevelListViewModel
            {
                Classes = records
                          .OrderByDescending(o => o.Level)
                          .ThenBy(o => o.ClassLevelId)
                          .Skip((page - 1) * pageSize)
                          .Take(pageSize),
                SearchModel = searchModel,
                PagingInfo = new PagingInfo
                {
                    CurrentPage = page,
                    PageSize = pageSize,
                    TotalItems = records.Count()
                }
            });
        }
        public ActionResult Index(SearchClassesModel search, int page = 1)
        {
            // Return all Classes
            // If not a post-back (i.e. initial load) set the searchModel to session
            if (Request.Form.Count <= 0)
            {
                if (search.IsEmpty() && Session["SearchClassesModel"] != null)
                {
                    search = (SearchClassesModel)Session["SearchClassesModel"];
                }
            }

            var helper = new ClassLevelHelper();
            var model  = helper.GetClassLevelList(search, search.ParsePage(page));

            Session["SearchClassesModel"] = search;

            //(search);

            return(View(model));
        }