public UISearchResourceV3(RawSearchResourceV3 searchResource, UIMetadataResource metadataResource)
     : base()
 {
     _searchResource = searchResource;
     _metadataResource = metadataResource;
 }
 private async Task<NuGetPackageVersion> CacheGetVersionMeta(UIMetadataResource metaResource, PackageIdentity versionIdentity, bool showDependencies)
 {
     string key = String.Format(@"{0}-{1}", versionIdentity.ToString(), showDependencies);
     if (base.IsInCache<NuGetPackageVersion>("GetVersionMeta", key))
     {
         return Get<NuGetPackageVersion>("GetVersionMeta", key);
     }
     else
     {
         var meta = await metaResource.GetMetadata(versionIdentity, CancellationToken.None);
         var output = await GetVersionMeta(versionIdentity, metaResource, showDependencies);
         return Get<NuGetPackageVersion>("GetVersionMeta", key, () => { return output; });
     }
 }
        public async Task LoadPackageMetadaAsync(UIMetadataResource metadataResource, CancellationToken token)
        {
            var downloadCountDict = _searchResultPackage.Versions.ToDictionary(
                v => v.Version,
                v => v.DownloadCount);                

            var dict = new Dictionary<NuGetVersion, DetailedPackageMetadata>();
            if (metadataResource != null)
            {
                // load up the full details for each version
                try
                {
                    var metadata = await metadataResource.GetMetadata(Id, true, false, token);
                    foreach (var item in metadata)
                    {
                        if (!dict.ContainsKey(item.Identity.Version))
                        {
                            int downloadCount;
                            if (!downloadCountDict.TryGetValue(item.Identity.Version, out downloadCount))
                            {
                                downloadCount = 0;
                            }
                            dict.Add(item.Identity.Version, new DetailedPackageMetadata(item, downloadCount));
                        }
                    }
                }
                catch (InvalidOperationException)
                {
                    // Ignore failures.
                }
            }

            _metadataDict = dict;

            DetailedPackageMetadata p;
            if (SelectedVersion != null &&
                _metadataDict.TryGetValue(SelectedVersion.Version, out p))
            {
                PackageMetadata = p;
            }
        }
        private static async Task<NuGetPackageVersion> GetVersionMeta(PackageIdentity versionIdentity,
          UIMetadataResource metaResource, bool getDependencies)
        {
            var packageVersion = new NuGetPackageVersion();
            var meta = await metaResource.GetMetadata(versionIdentity, CancellationToken.None);
            packageVersion.PackageID = meta.Identity.Id;
            packageVersion.Description = meta.Description;

            //Uri
            packageVersion.IconUri = meta.IconUrl;
            packageVersion.ProjectUri = meta.ProjectUrl == null ? "#" : meta.ProjectUrl.AbsoluteUri;
            packageVersion.LicenseUri = meta.LicenseUrl == null ? "#" : meta.LicenseUrl.AbsoluteUri;
            packageVersion.ReportAbuseUri = meta.ReportAbuseUrl.AbsoluteUri;

            //TODO:Currently NuGet API return blank
            packageVersion.Authors = String.Join(",", meta.Authors);
            packageVersion.Owners = String.Join(",", meta.Owners);

            //Supported Frameworks
            packageVersion.SupportedFrameworks = new List<NuGetFrameworkInfo>();
            if (getDependencies)
            {
                foreach (var item in meta.DependencySets)
                {
                    if (item.TargetFramework.IsUnsupported)
                        continue;

                    NuGetFrameworkInfo fxInfo = NuGetFrameworkInfo.CreateFrom(item.TargetFramework);
                    var dependentOn = item.Packages.Count();
                    if (dependentOn > 0)
                        fxInfo.DependencyCount = dependentOn;
                    packageVersion.SupportedFrameworks.Add(fxInfo);
                }
                if (!packageVersion.SupportedFrameworks.Any())
                {
                    packageVersion.SupportedFrameworks.Add(NuGetFrameworkInfo.Any());
                }
            }
            return packageVersion;
        }
Exemple #5
0
 public UISearchResourceV3(RawSearchResourceV3 searchResource, UIMetadataResource metadataResource)
     : base()
 {
     _searchResource   = searchResource;
     _metadataResource = metadataResource;
 }