private FeatureTable GetTable(Assembly featureTestAssembly)
        {
            var libraries          = LibraryProvider.GetAdapters(featureTestAssembly).ToArray();
            var allVersionsGrouped = libraries.Where(l => l.PackageId != null)
                                     .Select(l => this.packageCache.GetPackage(l.PackageId))
                                     .SelectMany(p => p.GetSupportedFrameworks())
                                     .SelectMany(NetFxVersionHelper.Split)
                                     .Where(NetFxVersionHelper.ShouldDisplay)
                                     .GroupBy(NetFxVersionHelper.GetDisplayName)
                                     .OrderBy(g => NetFxVersionHelper.GetDisplayOrder(g.First()))
                                     .ToList();

            var versionFeatures = allVersionsGrouped.Select(g => new Feature(g, g.Key));
            var table           = new FeatureTable(MetadataKeys.NetFxSupportTable, "Supported .NET versions", libraries, versionFeatures)
            {
                Description = "This information is based on versions included in NuGet package.",
                Scoring     = FeatureScoring.NotScored
            };

            foreach (var library in libraries)
            {
                this.FillNetVersionSupport(table, library, allVersionsGrouped);
            }

            return(table);
        }
        private FeatureTable GetNetVersionSupport(IFrameworkAdapter[] diFrameworks, Dictionary <IFrameworkAdapter, IPackage> packages)
        {
            var allVersionsGrouped = packages.SelectMany(p => p.Value.GetSupportedFrameworks())
                                     .Where(NetFxVersionHelper.ShouldDisplay)
                                     .GroupBy(NetFxVersionHelper.GetDisplayName)
                                     .OrderBy(g => NetFxVersionHelper.GetDisplayOrder(g.First()))
                                     .ToList();

            var versionFeatures = allVersionsGrouped.Select(g => new Feature(g, g.Key));
            var table           = new FeatureTable(MetadataKeys.NetFxVersionTable, "Supported .NET versions", diFrameworks, versionFeatures)
            {
                Description = "This information is based on versions included in NuGet package.",
                Scoring     = FeatureScoring.NotScored
            };

            foreach (var diFramework in diFrameworks)
            {
                var package = packages.GetValueOrDefault(diFramework);
                FillNetVersionSupport(table, diFramework, package, allVersionsGrouped);
            }

            return(table);
        }