public GridItemsViewModel GetGridItemsViewModel(PageSortFilter pageSortFilter, IQueryable <T> items, string gridName = "gridContainer") { var userId = _sessionContext.GetUserId(); var user = _repository.Find <User>(userId); var pager = new Pager <T>(); var pageAndSort = pager.PageAndSort(items, pageSortFilter); var model = new GridItemsViewModel { items = BuildGrid().GetGridRows(pageAndSort.Items, user, gridName), page = pageAndSort.Page, records = pageAndSort.TotalRows, total = pageAndSort.TotalPages }; return(model); }
public PageDetail PageAndSort(IEnumerable <ENTITY> query, PageSortFilter _pageSortFilter) { var count = query != null?query.Count() : 0; var theQuery = query.AsQueryable(); if (_pageSortFilter.SortColumn.IsNotEmpty()) { query = (_pageSortFilter.SortAscending) ? theQuery.OrderBy(_pageSortFilter.SortColumn) : theQuery.OrderByDescending(_pageSortFilter.SortColumn); } return(new PageDetail { Items = query.Skip(_pageSortFilter.Skip).Take(_pageSortFilter.Take), RowsPersPage = _pageSortFilter.Take, TotalRows = count, Page = _pageSortFilter.Page }); }