private static async Task <NugetSourceResult> GetNugetSource(NugetRegistration registration) { HttpResponseMessage response = await _client.GetAsync(registration.ServiceUri); JObject responseData = await response.Content.ReadAsAsync <JObject>(); JArray apis = responseData["resources"] as JArray; JToken searchApi = apis.First(p => p["@type"].ToString() == "SearchQueryService"); JToken packageDetailsUriTemplateJson = apis.FirstOrDefault(p => p["@type"].ToString().StartsWith("PackageDetailsUriTemplate")); string packageDetailsUriTemplate = packageDetailsUriTemplateJson == null ? registration.FallbackPackageDetailsUriTemplate : packageDetailsUriTemplateJson["@id"].ToString(); return(new NugetSourceResult(registration.FriendlyName, registration.ServiceUri, searchApi["@id"].ToString(), packageDetailsUriTemplate)); }
private static async Task <NugetSourceResult> GetResult(NugetRegistration registration) { NugetSourceResult result = await GetNugetSource(registration); IList <Task <NugetPackage> > tasks = new List <Task <NugetPackage> >(); foreach (var package in packageNames) { tasks.Add(GetLatestVersion(result.SearchUrl, package, result.PackageDetailsUrlTemplate)); } await Task.WhenAll(tasks); foreach (var packageTask in tasks) { result.AddPackage(await packageTask); } return(result); }