private bool VisitLibrary(IGraphNode <LibraryDescription> node, IEnumerable <IGraphNode <LibraryDescription> > ancestors, ISet <LibraryDescription> visitedLibraries) { if (visitedLibraries.Add(node.Item)) { foreach (var loadableAssembly in node.Item.Assemblies) { AddDependencySource(_dependencyPackageSources, loadableAssembly, node.Item.Identity.Name); DepthFirstGraphTraversal.PreOrderWalk( root: loadableAssembly, visitNode: VisitAssembly, getChildren: GetAssemblyDependencies); } return(true); } return(false); }
private bool VisitLibrary(IGraphNode <Library> node, IEnumerable <IGraphNode <Library> > ancestors, ISet <Library> visitedLibraries, ISet <string> assemblies) { if (visitedLibraries.Add(node.Item)) { LibraryDescription desc; if (_libDictionary.TryGetValue(node.Item, out desc)) { foreach (var loadableAssembly in desc.LoadableAssemblies) { DepthFirstGraphTraversal.PreOrderWalk( root: loadableAssembly, visitNode: (assemblyNode, assemblyAncestors) => VisitAssembly(assemblyNode, assemblyAncestors, assemblies), getChildren: GetAssemblyDependencies); } } return(true); } return(false); }