/// <summary> /// Find the latest version of the package /// </summary> /// <param name="includePrerelease">include versions with prerelease labels</param> /// <param name="includeUnlisted">not implemented yet</param> public override async Task <IEnumerable <KeyValuePair <string, NuGetVersion> > > GetLatestVersions(IEnumerable <string> packageIds, bool includePrerelease, bool includeUnlisted, CancellationToken token) { List <KeyValuePair <string, NuGetVersion> > results = new List <KeyValuePair <string, NuGetVersion> >(); foreach (var id in packageIds) { var catalogEntries = await _regResource.GetPackageMetadata(id, includePrerelease, includeUnlisted, token); var allVersions = catalogEntries.Select(p => NuGetVersion.Parse(p["version"].ToString())); // find the latest var latest = allVersions.OrderByDescending(p => p, VersionComparer.VersionRelease).FirstOrDefault(); results.Add(new KeyValuePair <string, NuGetVersion>(id, latest)); } return(results); }
public override async Task <Uri> GetDownloadUrl(PackageIdentity identity, CancellationToken token) { Uri downloadUri = null; var blob = await _regResource.GetPackageMetadata(identity, token); if (blob != null && blob["packageContent"] != null) { downloadUri = new Uri(blob["packageContent"].ToString()); } return(downloadUri); }