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); }