コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }