/// <summary> /// Helper that combines the results into the hashsets, which are passed by reference. /// ***NOTE: Parameters combinedResults and foundIds may get updated before the return of this call /// </summary> private static void ProcessResults(HashSet <SourceDependencyInfo> combinedResults, SourceRepository source, HashSet <string> foundIds, IEnumerable <PackageDependencyInfo> packages, bool includePrerelease) { if (packages != null) { foreach (var package in packages) { // Set the includePrerelease on the version range on every single package dependency to context.IncludePreerelease var packageDependencies = package.Dependencies; var modifiedPackageDependencies = new List <PackageDependency>(); foreach (var packageDependency in packageDependencies) { var versionRange = packageDependency.VersionRange; var modifiedVersionRange = new Versioning.VersionRange(versionRange.MinVersion, versionRange.IsMinInclusive, versionRange.MaxVersion, versionRange.IsMaxInclusive, includePrerelease, versionRange.Float); var modifiedPackageDependency = new PackageDependency(packageDependency.Id, modifiedVersionRange); modifiedPackageDependencies.Add(modifiedPackageDependency); } var modifiedPackageDependencyInfo = new PackageDependencyInfo(new PackageIdentity(package.Id, package.Version), modifiedPackageDependencies); SourceDependencyInfo depInfo = new SourceDependencyInfo(modifiedPackageDependencyInfo, source); // add this to the final results combinedResults.Add(depInfo); // mark that we found this id foundIds.Add(depInfo.Id); // mark that all dependant ids were also checked by the metadata client foundIds.UnionWith(depInfo.Dependencies.Select(p => p.Id)); } } }
/// <summary> /// Helper that combines the results into the hashsets, which are passed by reference. /// ***NOTE: Parameters combinedResults and foundIds may get updated before the return of this call /// </summary> private static void ProcessResults(HashSet<SourceDependencyInfo> combinedResults, SourceRepository source, HashSet<string> foundIds, IEnumerable<PackageDependencyInfo> packages, bool includePrerelease) { if (packages != null) { foreach (var package in packages) { // Set the includePrerelease on the version range on every single package dependency to context.IncludePreerelease var packageDependencies = package.Dependencies; var modifiedPackageDependencies = new List<PackageDependency>(); foreach (var packageDependency in packageDependencies) { var versionRange = packageDependency.VersionRange; var modifiedVersionRange = new Versioning.VersionRange(versionRange.MinVersion, versionRange.IsMinInclusive, versionRange.MaxVersion, versionRange.IsMaxInclusive, includePrerelease, versionRange.Float); var modifiedPackageDependency = new PackageDependency(packageDependency.Id, modifiedVersionRange); modifiedPackageDependencies.Add(modifiedPackageDependency); } var modifiedPackageDependencyInfo = new PackageDependencyInfo(new PackageIdentity(package.Id, package.Version), modifiedPackageDependencies); SourceDependencyInfo depInfo = new SourceDependencyInfo(modifiedPackageDependencyInfo, source); // add this to the final results combinedResults.Add(depInfo); // mark that we found this id foundIds.Add(depInfo.Id); // mark that all dependant ids were also checked by the metadata client foundIds.UnionWith(depInfo.Dependencies.Select(p => p.Id)); } } }