public UserProfileModel(User user, User currentUser, List <ListPackageItemViewModel> allPackages, int pageIndex, int pageSize, UrlHelper url) { User = user; Username = user.Username; EmailAddress = user.EmailAddress; UnconfirmedEmailAddress = user.UnconfirmedEmailAddress; AllPackages = allPackages; TotalPackages = allPackages.Count; PackagePage = pageIndex; PackagePageSize = pageSize; TotalPackageDownloadCount = AllPackages.Sum(p => ((long)p.TotalDownloadCount)); PackagePageTotalCount = (TotalPackages + PackagePageSize - 1) / PackagePageSize; var pager = new PreviousNextPagerViewModel <ListPackageItemViewModel>(allPackages, pageIndex, PackagePageTotalCount, page => url.User(user, page)); Pager = pager; PagedPackages = AllPackages.Skip(PackagePageSize * pageIndex) .Take(PackagePageSize).ToList(); CanManageAccount = ActionsRequiringPermissions.ManageAccount.CheckPermissions(currentUser, user) == PermissionsCheckResult.Allowed; CanViewAccount = ActionsRequiringPermissions.ViewAccount.CheckPermissions(currentUser, user) == PermissionsCheckResult.Allowed; }
public PackageListViewModel( IReadOnlyCollection <ListPackageItemViewModel> packageViewModels, DateTime?indexTimestampUtc, string searchTerm, int totalCount, int pageIndex, int pageSize, UrlHelper url, bool includePrerelease, bool isPreviewSearch, string packageType, string sortBy) { PageIndex = pageIndex; IndexTimestampUtc = indexTimestampUtc; PageSize = pageSize; TotalCount = totalCount; SearchTerm = searchTerm; int pageCount = (TotalCount + PageSize - 1) / PageSize; var pager = new PreviousNextPagerViewModel <ListPackageItemViewModel>( packageViewModels, PageIndex, pageCount, page => url.PackageList(page, searchTerm, includePrerelease)); Items = pager.Items; Pager = pager; IncludePrerelease = includePrerelease; IsPreviewSearch = isPreviewSearch; PackageType = packageType; SortBy = sortBy; }
public PackageListViewModel( IQueryable <Package> packages, User currentUser, DateTime?indexTimestampUtc, string searchTerm, int totalCount, int pageIndex, int pageSize, UrlHelper url, bool includePrerelease) { // TODO: Implement actual sorting IEnumerable <ListPackageItemViewModel> items = packages.ToList().Select(pv => new ListPackageItemViewModel(pv, currentUser)); 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 => url.PackageList(page, searchTerm, includePrerelease)); Items = pager.Items; FirstResultIndex = 1 + (PageIndex * PageSize); LastResultIndex = FirstResultIndex + Items.Count() - 1; Pager = pager; IncludePrerelease = includePrerelease; }
public PackageListViewModel( IEnumerable <Package> packages, string searchTerm, string sortOrder, int totalCount, int pageIndex, int pageSize, UrlHelper url, bool includePrerelease, bool moderatorQueue, int updatedCount, int submittedCount, int waitingCount, int respondedCount, string moderationStatus) { // 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; ModerationStatus = moderationStatus; SearchTerm = searchTerm; int pageCount = (TotalCount + PageSize - 1) / PageSize; var pager = new PreviousNextPagerViewModel <ListPackageItemViewModel>( items, PageIndex, pageCount, page => url.PackageList(page, sortOrder, searchTerm, includePrerelease, moderatorQueue, moderationStatus) ); var pagerSearch = new PreviousNextPagerViewModel <ListPackageItemViewModel>( items, PageIndex, pageCount, page => url.SearchResults(page, sortOrder, searchTerm, includePrerelease, moderatorQueue, moderationStatus) ); Items = pager.Items; FirstResultIndex = 1 + (PageIndex * PageSize); LastResultIndex = FirstResultIndex + Items.Count() - 1; Pager = pager; PagerSearch = pagerSearch; IncludePrerelease = includePrerelease ? "true" : null; ModeratorQueue = moderatorQueue ? "true" : null; ModerationUpdatedPackageCount = updatedCount; ModerationSubmittedPackageCount = submittedCount; ModerationWaitingPackageCount = waitingCount; ModerationRespondedPackageCount = respondedCount; }
public UserProfileModel(User user, List <PackageViewModel> allPackages, int pageIndex, int pageSize, UrlHelper url) { Username = user.Username; EmailAddress = user.EmailAddress; UnconfirmedEmailAddress = user.UnconfirmedEmailAddress; AllPackages = allPackages; TotalPackages = allPackages.Count; PackagePage = pageIndex; PackagePageSize = pageSize; TotalPackageDownloadCount = AllPackages.Sum(p => p.TotalDownloadCount); PackagePageTotalCount = (TotalPackages + PackagePageSize - 1) / PackagePageSize; var pager = new PreviousNextPagerViewModel <PackageViewModel>(allPackages, pageIndex, PackagePageTotalCount, page => url.User(user, page)); Pager = pager; PagedPackages = AllPackages.Skip(PackagePageSize * pageIndex) .Take(PackagePageSize).ToList(); }
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, PageSize, pageCount, page => url.PackageList(page, sortOrder, searchTerm) ); 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; }