// GET: CostCenter
        public ActionResult Index(int?page, string query = null)
        {
            var costCenters = _costCenterRepository.GetAllFromDatabaseEnumerable().ToList().MapToViews().OrderBy(o => o.Name);

            // paging
            int pageSize             = 5;
            var pageNumber           = page ?? 1;                                     // if no page was specified in the querystring, default to the first page (1)
            var onePageOfCostCenters = costCenters.ToPagedList(pageNumber, pageSize); // will only contain 5 items max because of the pageSize

            // searching
            if (!string.IsNullOrEmpty(query))
            {
                var costCenterSearched = _costCenterRepository.GetAllFromDatabaseEnumerable()
                                         .Where(c => c.Name.ToLower().Contains(query.ToLower()) || c.Description.ToLower().Contains(query.ToLower()))
                                         .ToList()
                                         .MapToViews();

                onePageOfCostCenters = costCenterSearched.ToPagedList(pageNumber, pageSize);
            }

            ViewBag.onePageOfCostCenters = onePageOfCostCenters;
            return(View(onePageOfCostCenters));
        }