public async Task <FeedVersion[]> GetPackageVersions( CancellationToken ct, PackageReference reference, string author = null ) { var logMessage = new StringBuilder(); logMessage.AppendLine($"Retrieving package {reference.Identity.Id} from {Url}"); var versions = await _packageSource.GetPackageVersions(ct, reference.Identity.Id); logMessage.AppendLine(versions.Length > 0 ? $"Found {versions.Length} versions" : "No versions found"); if (!IsPrivate && author.HasValue() && versions.Any()) { versions = versions.Where(m => m.HasAuthor(author)).ToArray(); logMessage.AppendLine(versions.Length > 0 ? $"Found {versions.Length} versions from {author}" : $"No versions from {author} found"); } Logger.LogInformation(logMessage.ToString().Trim()); return(versions .Select(m => new FeedVersion(m.Version, Url)) .ToArray()); }
public static async Task <PackageSearchMetadataRegistration> GetPackageVersion( this PackageSource source, CancellationToken ct, PackageIdentity identity ) { var versions = await source.GetPackageVersions(ct, identity.Id); return(versions .Cast <PackageSearchMetadataRegistration>() .FirstOrDefault(m => m.Version.Equals(identity.Version))); }