public async Task <ArtifactAvailableInstances> GetVersionsAsync(IActivityMonitor m, string artifactName) { if (_registry == null) { _registry = _registryFactory(); } var v = new ArtifactAvailableInstances(this, artifactName); var result = await _registry.View(m, artifactName); if (result.exist) { JObject body = JObject.Parse(result.viewJson); var versions = (JObject)body["versions"]; foreach (var vK in versions) { var sV = SVersion.TryParse(vK.Key); if (!sV.IsValid) { m.Warn($"Unable to parse version '{vK.Key}' for '{artifactName}': {sV.ErrorMessage}"); } else { v = v.WithVersion(sV); } } } return(v); }
async Task <ArtifactAvailableInstances> GetAvailable(MetadataResource meta, NuGetLoggerAdapter logger, string name) { var v = new ArtifactAvailableInstances(this, name); var latest = await meta.GetVersions(name, true, false, _feed.Client.SourceCache, logger, CancellationToken.None); foreach (var nugetVersion in latest) { var vText = nugetVersion.ToNormalizedString(); var sV = SVersion.TryParse(vText); if (!sV.IsValid) { logger.Monitor.Warn($"Unable to parse version '{vText}' for '{name}': {sV.ErrorMessage}"); } else { v = v.WithVersion(sV); } } return(v); }