Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
        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;
        }