public PackageListViewModel( IQueryable<Package> packages, DateTime? indexTimestampUtc, string searchTerm, int totalCount, int pageIndex, int pageSize, UrlHelper url, string curatedFeed) { // TODO: Implement actual sorting IEnumerable<ListPackageItemViewModel> items = packages.ToList().Select(pv => new ListPackageItemViewModel(pv)); PageIndex = pageIndex; IndexTimestampUtc = indexTimestampUtc; PageSize = pageSize; TotalCount = totalCount; SearchTerm = searchTerm; int pageCount = (TotalCount + PageSize - 1) / PageSize; var pager = new PreviousNextPagerViewModel<ListPackageItemViewModel>( items, PageIndex, pageCount, page => curatedFeed == null ? url.PackageList(page, searchTerm) : url.CuratedPackageList(page, searchTerm, curatedFeed) ); Items = pager.Items; FirstResultIndex = 1 + (PageIndex * PageSize); LastResultIndex = FirstResultIndex + Items.Count() - 1; Pager = pager; }
public PackageListViewModel(IQueryable<Package> packages, string searchTerm, string sortOrder, int totalCount, int pageIndex, int pageSize, UrlHelper url, bool includePrerelease) { // TODO: Implement actual sorting IEnumerable<ListPackageItemViewModel> items; using (MiniProfiler.Current.Step("Querying and mapping packages to list")) { items = packages.ToList() .Select(pv => new ListPackageItemViewModel(pv, needAuthors: false)); } PageIndex = pageIndex; PageSize = pageSize; TotalCount = totalCount; SortOrder = sortOrder; SearchTerm = searchTerm; int pageCount = (TotalCount + PageSize - 1) / PageSize; var pager = new PreviousNextPagerViewModel<ListPackageItemViewModel>( items, PageIndex, pageCount, page => url.PackageList(page, sortOrder, searchTerm, includePrerelease) ); Items = pager.Items; FirstResultIndex = 1 + (PageIndex * PageSize); LastResultIndex = FirstResultIndex + Items.Count() - 1; Pager = pager; IncludePrerelease = includePrerelease ? "true" : null; }
public PackageListViewModel(IQueryable<Package> packages, string searchTerm, string sortOrder, int pageIndex, int pageSize, UrlHelper url) { // TODO: Implement actual sorting IEnumerable<ListPackageItemViewModel> items; using (MiniProfiler.Current.Step("Querying and mapping packages to list")) { items = packages.SortBy(GetSortExpression(sortOrder)) .Skip(pageIndex * pageSize) .Take(pageSize) .ToList() .Select(pv => new ListPackageItemViewModel(pv)); } PageIndex = pageIndex; PageSize = pageSize; TotalCount = packages.Count(); SortOrder = sortOrder; SearchTerm = searchTerm; int pageCount = (TotalCount + PageSize - 1) / PageSize; var pager = new PreviousNextPagerViewModel<ListPackageItemViewModel>( items, PageIndex, pageCount, page => url.PackageList(page, sortOrder, searchTerm) ); Items = pager.Items; FirstResultIndex = 1 + (PageIndex * PageSize); LastResultIndex = FirstResultIndex + Items.Count() - 1; Pager = pager; }