// get all data centers public DataCenterIndexVM GetDataCenterList(string sortOrder, string currentFilter, string searchString, int?page) { try { IEnumerable <DataCenterVM> dataCenterList = _context.DataCenterLocation .Select(c => new DataCenterVM { Location = c.Location, LocationID = c.LocationID, }); page = searchString == null ? page : 1; int currentPageIndex = page.HasValue ? page.Value - 1 : 0; searchString = searchString ?? currentFilter; int pageNumber = (page ?? 1); int defaultPageSize = ConstantsRepo.PAGE_SIZE; var sorted = Sort(dataCenterList, sortOrder, searchString); int totalNumOfCenters = sorted.Count(); sortOrder = sortOrder == null ? ConstantsRepo.SORT_DATACENTER_BY_NAME_ASCE : sortOrder; DataCenterIndexVM model = new DataCenterIndexVM { DataCenters = sorted.ToPagedList(pageNumber, defaultPageSize), LocationSort = sortOrder == ConstantsRepo.SORT_DATACENTER_BY_NAME_DESC ? ConstantsRepo.SORT_DATACENTER_BY_NAME_ASCE : ConstantsRepo.SORT_DATACENTER_BY_NAME_DESC, CurrentFilter = searchString, CurrentSort = sortOrder, TotalItemCount = totalNumOfCenters, ItemStart = currentPageIndex * defaultPageSize + 1, ItemEnd = totalNumOfCenters - (defaultPageSize * currentPageIndex) >= defaultPageSize ? defaultPageSize * (currentPageIndex + 1) : totalNumOfCenters, }; return(model); } catch (Exception) { return(null); } }
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int?page) { DataCenterIndexVM dataCenterList = _dRepo.GetDataCenterList(sortOrder, currentFilter, searchString, page); return(View(dataCenterList)); }