protected override PackageViewModel CreatePackageViewModel(IPackage package, PackageSearchCriteria search)
        {
            PackageViewModel viewModel = base.CreatePackageViewModel(package, search);

            viewModel.ShowVersionInsteadOfDownloadCount = search.IsPackageVersionSearch;
            return(viewModel);
        }
        IEnumerable <IPackage> GetPrioritizedPackages(PackageSearchCriteria search)
        {
            if (search.IsPackageVersionSearch)
            {
                yield break;
            }

            List <IPackage> prioritizedPackages = GetRecentPackages(search).ToList();

            if (PackageViewModels.Count == 0)
            {
                foreach (IPackage package in prioritizedPackages)
                {
                    yield return(package);
                }

                foreach (IPackage package in GetSolutionPackages(search))
                {
                    if (!prioritizedPackages.Contains(package, PackageEqualityComparer.IdAndVersion))
                    {
                        prioritizedPackages.Add(package);
                        yield return(package);
                    }
                }
            }
        }
        protected override IQueryable <IPackage> GetPackages(PackageSearchCriteria search)
        {
            if (repository == null)
            {
                throw new ApplicationException(errorMessage);
            }

            if (search.IsPackageVersionSearch)
            {
                return(repository
                       .FindPackagesById(search.PackageId)
                       .Where(package => IncludePrerelease || package.IsReleaseVersion())
                       .AsQueryable());
            }

            if (IncludePrerelease)
            {
                return(repository
                       .Search(search.SearchText, new string[0], IncludePrerelease)
                       .Where(package => package.IsAbsoluteLatestVersion));
            }
            return(repository
                   .Search(search.SearchText, new string[0], IncludePrerelease)
                   .Where(package => package.IsLatestVersion));
        }
Пример #4
0
 public PackagesForSelectedPageQuery(
     PackagesViewModel viewModel,
     IEnumerable <IPackage> allPackages,
     string searchCriteria)
 {
     Skip           = viewModel.ItemsBeforeFirstPage;
     Take           = viewModel.PageSize;
     AllPackages    = allPackages;
     SearchCriteria = new PackageSearchCriteria(searchCriteria);
     TotalPackages  = viewModel.TotalItems;
 }
		public PackagesForSelectedPageQuery (
			PackagesViewModel viewModel,
			IEnumerable<IPackage> allPackages,
			string searchCriteria)
		{
			Skip = viewModel.ItemsBeforeFirstPage;
			Take = viewModel.PageSize;
			AllPackages = allPackages;
			SearchCriteria = new PackageSearchCriteria (searchCriteria);
			TotalPackages = viewModel.TotalItems;
		}
 IEnumerable <IPackage> GetSolutionPackages(PackageSearchCriteria search)
 {
     try {
         return(solutionPackageRepository
                .GetPackages()
                .Find(search.SearchText)
                .FilterByPrerelease(IncludePrerelease)
                .ToList());
     } catch (Exception ex) {
         LoggingService.LogError("Unable to get solution packages so these will not be shown.", ex);
         return(Enumerable.Empty <IPackage> ());
     }
 }
        protected override IEnumerable<IPackage> GetFilteredPackagesBeforePagingResults(IQueryable<IPackage> allPackages, PackageSearchCriteria search)
        {
            if (search.IsPackageVersionSearch) {
                return base.GetFilteredPackagesBeforePagingResults (allPackages, search)
                    .Where (package => search.IsVersionMatch (package.Version));
            }

            if (IncludePrerelease) {
                return base.GetFilteredPackagesBeforePagingResults(allPackages, search)
                    .DistinctLast<IPackage>(PackageEqualityComparer.Id);
            }
            return base.GetFilteredPackagesBeforePagingResults(allPackages, search)
                .Where(package => package.IsReleaseVersion())
                .DistinctLast<IPackage>(PackageEqualityComparer.Id);
        }
		protected override IQueryable<IPackage> GetPackages (PackageSearchCriteria search)
		{
			if (repository == null) {
				throw new ApplicationException (errorMessage);
			}

			if (search.IsPackageVersionSearch) {
				return repository
					.FindPackagesById (search.PackageId)
					.Where (package => IncludePrerelease || package.IsReleaseVersion ())
					.AsQueryable ();
			}

			if (IncludePrerelease) {
				return repository
					.Search (search.SearchText, new string[0], IncludePrerelease)
					.Where (package => package.IsAbsoluteLatestVersion);
			}
			return repository
				.Search (search.SearchText, new string[0], IncludePrerelease)
				.Where (package => package.IsLatestVersion);
		}
		IEnumerable<IPackage> GetPrioritizedPackages (PackageSearchCriteria search)
		{
			if (search.IsPackageVersionSearch) {
				yield break;
			}

			List<IPackage> prioritizedPackages = GetRecentPackages (search).ToList ();

			if (PackageViewModels.Count == 0) {
				foreach (IPackage package in prioritizedPackages) {
					yield return package;
				}

				foreach (IPackage package in GetSolutionPackages (search)) {
					if (!prioritizedPackages.Contains (package, PackageEqualityComparer.IdAndVersion)) {
						prioritizedPackages.Add (package);
						yield return package;
					}
				}
			}
		}
Пример #10
0
        protected virtual PackageViewModel CreatePackageViewModel(IPackage package, PackageSearchCriteria search)
        {
            PackageFromRepository packageFromRepository = CreatePackageFromRepository(package);

            return(packageViewModelFactory.CreatePackageViewModel(this, packageFromRepository));
        }
		/// <summary>
		/// Package prioritization:
		/// 
		/// Recent packages first.
		/// Packages in solution.
		/// Packages from active package source.
		/// </summary>
		protected override IEnumerable<IPackage> PrioritizePackages (IEnumerable<IPackage> packages, PackageSearchCriteria search)
		{
			List<IPackage> prioritizedPackages = GetPrioritizedPackages (search).ToList ();

			foreach (IPackage package in prioritizedPackages) {
				yield return package;
			}

			foreach (IPackage package in packages) {
				if (!prioritizedPackages.Contains (package, PackageEqualityComparer.IdAndVersion)) {
					yield return package;
				}
			}
		}
Пример #12
0
        void UpdatePackageViewModels(IEnumerable <IPackage> packages, PackageSearchCriteria search)
        {
            IEnumerable <PackageViewModel> currentViewModels = ConvertToPackageViewModels(packages, search);

            UpdatePackageViewModels(currentViewModels);
        }
Пример #13
0
 public IEnumerable <PackageViewModel> ConvertToPackageViewModels(IEnumerable <IPackage> packages, PackageSearchCriteria search)
 {
     foreach (IPackage package in packages)
     {
         PackageViewModel packageViewModel = CreatePackageViewModel(package, search);
         CheckNewPackageViewModelIfPreviouslyChecked(packageViewModel);
         yield return(packageViewModel);
     }
 }
		protected override PackageViewModel CreatePackageViewModel (IPackage package, PackageSearchCriteria search)
		{
			PackageViewModel viewModel = base.CreatePackageViewModel (package, search);
			viewModel.ShowVersionInsteadOfDownloadCount = search.IsPackageVersionSearch;
			return viewModel;
		}
        /// <summary>
        /// Package prioritization:
        ///
        /// Recent packages first.
        /// Packages in solution.
        /// Packages from active package source.
        /// </summary>
        protected override IEnumerable <IPackage> PrioritizePackages(IEnumerable <IPackage> packages, PackageSearchCriteria search)
        {
            List <IPackage> prioritizedPackages = GetPrioritizedPackages(search).ToList();

            foreach (IPackage package in prioritizedPackages)
            {
                yield return(package);
            }

            foreach (IPackage package in packages)
            {
                if (!prioritizedPackages.Contains(package, PackageEqualityComparer.IdAndVersion))
                {
                    yield return(package);
                }
            }
        }
		protected override IEnumerable<IPackage> GetFilteredPackagesBeforePagingResults (IQueryable<IPackage> allPackages, PackageSearchCriteria search)
		{
			PageCountBeforePackagesFiltered = Pages.Count;
			return base.GetFilteredPackagesBeforePagingResults (allPackages, search);
		}
		protected override IEnumerable<IPackage> PrioritizePackages (IEnumerable<IPackage> packages, PackageSearchCriteria search)
		{
			List<IPackage> recentPackages = GetRecentPackages (search).ToList ();

			if (PackageViewModels.Count == 0) {
				foreach (IPackage package in recentPackages) {
					yield return package;
				}
			}

			foreach (IPackage package in packages) {
				if (!recentPackages.Contains (package, PackageEqualityComparer.IdAndVersion)) {
					yield return package;
				}
			}
		}
		IEnumerable<IPackage> GetRecentPackages (PackageSearchCriteria search)
		{
			if (search.IsPackageVersionSearch) {
				return Enumerable.Empty<IPackage> ();
			}
			return recentPackageRepository.Search (search.SearchText, IncludePrerelease);
		}
		/// <summary>
		/// Order packages by most downloaded first.
		/// </summary>
		protected override IQueryable<IPackage> OrderPackages (IQueryable<IPackage> packages, PackageSearchCriteria search)
		{
			if (search.IsPackageVersionSearch) {
				return packages.OrderByDescending (package => package.Version);
			}

			if (search.SearchText != null) {
				// Order by relevance for searches.
				return packages;
			}
			return packages.OrderByDescending(package => package.DownloadCount);
		}
 IEnumerable<IPackage> GetPrioritizedPackages(PackageSearchCriteria search)
 {
     if (search.IsPackageVersionSearch) {
         yield break;
     }
 }
        /// <summary>
        /// Order packages by most downloaded first.
        /// </summary>
        protected override IQueryable <IPackage> OrderPackages(IQueryable <IPackage> packages, PackageSearchCriteria search)
        {
            if (search.IsPackageVersionSearch)
            {
                return(packages.OrderByDescending(package => package.Version));
            }

            if (search.SearchText != null)
            {
                // Order by relevance for searches.
                return(packages);
            }
            return(packages.OrderByDescending(package => package.DownloadCount));
        }
        protected override IEnumerable <IPackage> GetFilteredPackagesBeforePagingResults(IQueryable <IPackage> allPackages, PackageSearchCriteria search)
        {
            if (search.IsPackageVersionSearch)
            {
                return(base.GetFilteredPackagesBeforePagingResults(allPackages, search)
                       .Where(package => search.IsVersionMatch(package.Version)));
            }

            if (IncludePrerelease)
            {
                return(base.GetFilteredPackagesBeforePagingResults(allPackages, search)
                       .DistinctLast <IPackage>(PackageEqualityComparer.Id));
            }
            return(base.GetFilteredPackagesBeforePagingResults(allPackages, search)
                   .Where(package => package.IsReleaseVersion())
                   .DistinctLast <IPackage>(PackageEqualityComparer.Id));
        }
		IEnumerable<IPackage> GetRecentPackages (PackageSearchCriteria search)
		{
			return recentPackageRepository.Search (search.SearchText, IncludePrerelease);
		}
Пример #24
0
 /// <summary>
 /// Returns packages filtered by search criteria.
 /// </summary>
 protected virtual IQueryable <IPackage> GetPackages(PackageSearchCriteria search)
 {
     return(null);
 }
		IEnumerable<IPackage> GetSolutionPackages (PackageSearchCriteria search)
		{
			try {
				return solutionPackageRepository
					.GetPackages ()
					.Find (search.SearchText)
					.FilterByPrerelease (IncludePrerelease)
					.ToList ();
			} catch (Exception ex) {
				LoggingService.LogError ("Unable to get solution packages so these will not be shown.", ex);
				return Enumerable.Empty<IPackage> ();
			}
		}
Пример #26
0
        /// <summary>
        /// Allows filtering of the packages before paging the results. Call base class method
        /// to run default filtering.
        /// </summary>
        protected virtual IEnumerable <IPackage> GetFilteredPackagesBeforePagingResults(IQueryable <IPackage> allPackages, PackageSearchCriteria search)
        {
            IEnumerable <IPackage> bufferedPackages = GetBufferedPackages(allPackages);

            return(bufferedPackages);
        }
Пример #27
0
 protected virtual IEnumerable <IPackage> PrioritizePackages(IEnumerable <IPackage> packages, PackageSearchCriteria searchCriteria)
 {
     return(packages);
 }
 IEnumerable <IPackage> GetRecentPackages(PackageSearchCriteria search)
 {
     return(recentPackageRepository.Search(search.SearchText, IncludePrerelease));
 }
		protected override IQueryable<IPackage> GetPackages (PackageSearchCriteria search)
		{
			GetAllPackagesCallCount++;
			SearchCriteriaPassedToFilterPackagesBySearchCriteria = search;
			return FakePackages.AsQueryable ().Find (search.SearchText);
		}
Пример #30
0
        IQueryable <IPackage> GetPackagesFromPackageSource(PackageSearchCriteria search)
        {
            IQueryable <IPackage> packages = GetPackages(search);

            return(OrderPackages(packages, search));
        }
Пример #31
0
 protected virtual IQueryable <IPackage> OrderPackages(IQueryable <IPackage> packages, PackageSearchCriteria search)
 {
     return(packages
            .OrderBy(package => package.Id));
 }
		IEnumerable<IPackage> GetSolutionPackages (PackageSearchCriteria search)
		{
			return solutionPackageRepository
				.GetPackages ()
				.Find (search.SearchText)
				.FilterByPrerelease (IncludePrerelease);
		}