private IEnumerable <T> GetCompatibleInstalledItemsForPackage <T>(string packageId, IEnumerable <T> items, NetPortableProfileTable portableProfileTable) where T : IFrameworkTargetable { IEnumerable <T> enumerable; FrameworkName targetFrameworkForPackage = this.GetTargetFrameworkForPackage(packageId); return((targetFrameworkForPackage != null) ? (!VersionUtility.TryGetCompatibleItems <T>(targetFrameworkForPackage, items, portableProfileTable, out enumerable) ? Enumerable.Empty <T>() : enumerable) : items); }
private IList <IPackageAssemblyReference> FilterAssemblyReferences( IEnumerable <IPackageAssemblyReference> unfilteredAssemblyReferences, IList <PackageReferenceSet> packageReferenceSets) { if (packageReferenceSets.IsEmpty()) { return(unfilteredAssemblyReferences.ToList()); } var results = new List <IPackageAssemblyReference>(); // we group assembly references by TargetFramework var assembliesGroupedByFx = unfilteredAssemblyReferences.ToLookup(d => d.TargetFramework); foreach (var group in assembliesGroupedByFx) { FrameworkName fileTargetFramework = group.Key; IEnumerable <PackageReferenceSet> bestMatches; if (VersionUtility.TryGetCompatibleItems(fileTargetFramework, PackageReferenceSets, out bestMatches)) { // now examine each assembly file, check if it appear in the References list for the correponding target framework foreach (var assemblyFile in group) { if (bestMatches.Any(m => m.References.Contains(assemblyFile.Name))) { results.Add(assemblyFile); } } } } return(results); }
internal static IEnumerable <T> GetCompatibleItemsCore <T>(this IProjectSystem projectSystem, IEnumerable <T> items) where T : IFrameworkTargetable { IEnumerable <T> compatibleItems; if (VersionUtility.TryGetCompatibleItems(projectSystem.TargetFramework, items, out compatibleItems)) { return(compatibleItems); } return(Enumerable.Empty <T>()); }
public static bool TryGetCompatibleItems <T>(this IProjectSystem projectSystem, IEnumerable <T> items, out IEnumerable <T> compatibleItems) where T : IFrameworkTargetable { if (projectSystem == null) { throw new ArgumentNullException("projectSystem"); } if (items == null) { throw new ArgumentNullException("items"); } return(VersionUtility.TryGetCompatibleItems <T>(projectSystem.TargetFramework, items, out compatibleItems)); }
public static IEnumerable<PackageDependency> GetCompatiblePackageDependencies(this IPackageMetadata package, FrameworkName targetFramework) { IEnumerable<PackageDependencySet> compatibleDependencySets; if (targetFramework == null) { compatibleDependencySets = package.DependencySets; } else if (!VersionUtility.TryGetCompatibleItems(targetFramework, package.DependencySets, out compatibleDependencySets)) { compatibleDependencySets = new PackageDependencySet[0]; } return compatibleDependencySets.SelectMany(d => d.Dependencies); }
public static IEnumerable <PackageDependency> GetCompatiblePackageDependencies(this IPackageMetadata package, FrameworkName targetFramework) { IEnumerable <PackageDependencySet> dependencySets; if (targetFramework == null) { dependencySets = package.DependencySets; } else if (!VersionUtility.TryGetCompatibleItems <PackageDependencySet>(targetFramework, package.DependencySets, out dependencySets)) { dependencySets = new PackageDependencySet[0]; } return(from d in dependencySets select d.Dependencies); }
/// <summary> /// This method uses the 'targetFramework' attribute in the packages.config to determine compatible items. /// Hence, it's only good for uninstall operations. /// </summary> private IEnumerable<T> GetCompatibleInstalledItemsForPackage<T>(string packageId, IEnumerable<T> items) where T : IFrameworkTargetable { FrameworkName packageFramework = GetPackageTargetFramework(packageId); if (packageFramework == null) { return items; } IEnumerable<T> compatibleItems; if (VersionUtility.TryGetCompatibleItems(packageFramework, items, out compatibleItems)) { return compatibleItems; } return Enumerable.Empty<T>(); }
/// <summary> /// This method uses the 'targetFramework' attribute in the packages.config to determine compatible items. /// Hence, it's only good for uninstall operations. /// </summary> private IEnumerable <T> GetCompatibleInstalledItemsForPackage <T>(string packageId, IEnumerable <T> items, NetPortableProfileTable portableProfileTable) where T : IFrameworkTargetable { FrameworkName packageFramework = ProjectManagerExtensions.GetTargetFrameworkForPackage(this, packageId); if (packageFramework == null) { return(items); } IEnumerable <T> compatibleItems; if (VersionUtility.TryGetCompatibleItems(packageFramework, items, portableProfileTable, out compatibleItems)) { return(compatibleItems); } return(Enumerable.Empty <T>()); }
internal static IEnumerable <T> GetCompatibleItemsCore <T>(this IProjectSystem projectSystem, IEnumerable <T> items) where T : IFrameworkTargetable { IEnumerable <T> enumerable; return(!VersionUtility.TryGetCompatibleItems <T>(projectSystem.TargetFramework, items, out enumerable) ? Enumerable.Empty <T>() : enumerable); }