private PackageSearchResponse MergeResults(IEnumerable<SimpleSearchMetadata>[] results, IEnumerable<SourceRepository> repos)
 {
     var comparer = new PackageIdentityComparer();
     return new PackageSearchResponse()
     {
         Sources = repos.Select(repo => repo.PackageSource.Source),
         Packages = results
             .SelectMany(metadata => metadata)
             .GroupBy(metadata => metadata.Identity.Id)
             .Select(metadataGroup => metadataGroup.OrderByDescending(metadata => metadata.Identity, comparer).First())
             .OrderBy(metadata => metadata.Identity.Id)
             .Select(metadata => new PackageSearchItem()
             {
                 Id = metadata.Identity.Id,
                 Version = metadata.Identity.Version.ToNormalizedString(),
                 HasVersion = metadata.Identity.HasVersion,
                 Description = metadata.Description
             })
     };
 }
示例#2
0
        /// <summary>
        /// True if the identity objects are equal based on the given comparison mode.
        /// </summary>
        public virtual bool Equals(PackageIdentity other, VersionComparison versionComparison)
        {
            var comparer = new PackageIdentityComparer(versionComparison);

            return(comparer.Equals(this, other));
        }