// get all statues public StatusIndexVM GetStatusList(string sortOrder, string currentFilter, string searchString, int?page) { try { IEnumerable <StatusVM> statusList = _context.Status .Select(c => new StatusVM { StatusName = c.StatusName, StatusTypeID = c.StatusTypeID, StatusID = c.StatusID, StatusTypeName = c.StatusType.StatusTypeName }); int pageNumber = (page ?? 1); int defaultPageSize = ConstantsRepo.PAGE_SIZE; page = searchString == null ? page : 1; int currentPageIndex = page.HasValue ? page.Value - 1 : 0; searchString = searchString ?? currentFilter; var sorted = Sort(statusList, sortOrder, searchString); int totalNumOfStatuses = sorted.Count(); sortOrder = sortOrder == null ? ConstantsRepo.SORT_STATUS_BY_TYPE_ASCE : sortOrder; StatusIndexVM model = new StatusIndexVM { Statuses = sorted.ToPagedList(pageNumber, defaultPageSize), CurrentFilter = searchString, CurrentSort = sortOrder, TotalItemCount = totalNumOfStatuses, ItemStart = currentPageIndex * defaultPageSize + 1, ItemEnd = totalNumOfStatuses - (defaultPageSize * currentPageIndex) >= defaultPageSize ? defaultPageSize * (currentPageIndex + 1) : totalNumOfStatuses, StatusTypeSort = sortOrder == ConstantsRepo.SORT_STATUS_BY_TYPE_DESC ? ConstantsRepo.SORT_STATUS_BY_TYPE_ASCE : ConstantsRepo.SORT_STATUS_BY_TYPE_DESC, StatusNameSort = sortOrder == ConstantsRepo.SORT_STATUS_BY_NAME_DESC ? ConstantsRepo.SORT_STATUS_BY_NAME_ASCE : ConstantsRepo.SORT_STATUS_BY_NAME_DESC, }; return(model); } catch (Exception) { return(null); } }
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int?page) { StatusIndexVM statusList = _sRepo.GetStatusList(sortOrder, currentFilter, searchString, page); return(View(statusList)); }