Skip to content

Commit

Permalink
Merge pull request #1653 from NuGet/tilovell/1370-ManagePackagesPageB…
Browse files Browse the repository at this point in the history
…rokenForBhuva

Tilovell/1370 manage packages page broken for bhuva
  • Loading branch information
analogrelay committed Oct 22, 2013
2 parents 6bb3c05 + 2e7f79a commit 1385bc7
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
15 changes: 12 additions & 3 deletions src/NuGetGallery/Services/PackageService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -158,9 +158,9 @@ public IQueryable<Package> GetPackagesForListing(bool includePrerelease)
public IEnumerable<Package> FindPackagesByOwner(User user, bool includeUnlisted)
{
// Like DisplayPackage we should prefer to show you information from the latest stable version,
// but show you the latest version otherwise.
// but show you the latest version (potentially latest UNLISTED version) otherwise.

var latestStablePackageVersions = _packageRepository.GetAll()
IQueryable<Package> latestStablePackageVersions = _packageRepository.GetAll()
.Where(p =>
p.PackageRegistration.Owners.Any(owner => owner.Key == user.Key)
&& p.IsLatestStable)
Expand All @@ -174,12 +174,21 @@ public IEnumerable<Package> FindPackagesByOwner(User user, bool includeUnlisted)
.Include(p => p.PackageRegistration)
.Include(p => p.PackageRegistration.Owners);

if (includeUnlisted)
{
latestPackageVersions = _packageRegistrationRepository.GetAll()
.Where(pr => pr.Owners.Where(owner => owner.Username == user.Username).Any())
.Select(pr => pr.Packages.OrderByDescending(p => p.Version).FirstOrDefault())
.Include(p => p.PackageRegistration)
.Include(p => p.PackageRegistration.Owners);
}

var mergedResults = new Dictionary<string, Package>(StringComparer.OrdinalIgnoreCase);
foreach (var package in latestPackageVersions)
{
mergedResults.Add(package.PackageRegistration.Id, package);
}
foreach (var package in latestStablePackageVersions)
foreach (var package in latestStablePackageVersions.Where(p => p != null))
{
mergedResults[package.PackageRegistration.Id] = package;
}
Expand Down
2 changes: 1 addition & 1 deletion tests/NuGetGallery.Facts/Services/PackageServiceFacts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1204,7 +1204,7 @@ public void ReturnsAnUnlistedPackageWhenIncludeUnlistedIsTrue()
{
var owner = new User { Username = "someone" };
var packageRegistration = new PackageRegistration { Id = "theId", Owners = { owner } };
var package = new Package { Version = "1.0", PackageRegistration = packageRegistration, Listed = true, IsLatest = true, IsLatestStable = true };
var package = new Package { Version = "1.0", PackageRegistration = packageRegistration, Listed = false, IsLatest = false, IsLatestStable = false };
packageRegistration.Packages.Add(package);

var context = GetFakeContext();
Expand Down

0 comments on commit 1385bc7

Please sign in to comment.