Ejemplo n.º 1
0
        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)));
        }