public override void BuildGraph(IGraphContext graphContext, string projectPath, IDependency dependency, GraphNode dependencyGraphNode) { // store refreshed dependency dependencyGraphNode.SetValue(DependenciesGraphSchema.DependencyProperty, dependency); var regularChildren = new List <IDependency>(); var fxAssembliesChildren = new List <IDependency>(); foreach (var childDependency in dependency.Dependencies) { if (!childDependency.Visible) { continue; } if (childDependency.Flags.Contains(DependencyTreeFlags.FxAssemblyProjectFlags)) { fxAssembliesChildren.Add(childDependency); } else { regularChildren.Add(childDependency); } } var isFxAssembliesFolder = dependencyGraphNode.GetValue <bool>(DependenciesGraphSchema.IsFrameworkAssemblyFolderProperty); if (isFxAssembliesFolder) { foreach (var fxAssembly in fxAssembliesChildren) { Builder.AddGraphNode(graphContext, projectPath, dependencyGraphNode, fxAssembly); } } else { foreach (var childDependency in regularChildren) { Builder.AddGraphNode(graphContext, projectPath, dependencyGraphNode, childDependency); } if (fxAssembliesChildren.Count > 0) { var fxAssembliesViewModel = new PackageFrameworkAssembliesViewModel(); var fxAssembliesNode = Builder.AddGraphNode(graphContext, projectPath, dependencyGraphNode, fxAssembliesViewModel); fxAssembliesNode.SetValue(DgmlNodeProperties.ContainsChildren, true); fxAssembliesNode.SetValue(DependenciesGraphSchema.IsFrameworkAssemblyFolderProperty, true); fxAssembliesNode.SetValue(DependenciesGraphSchema.DependencyProperty, dependency); } } }
public override void BuildGraph( IGraphContext graphContext, string projectPath, IDependency dependency, GraphNode dependencyGraphNode, ITargetedDependenciesSnapshot targetedSnapshot) { // store refreshed dependency info dependencyGraphNode.SetValue(DependenciesGraphSchema.DependencyIdProperty, dependency.Id); dependencyGraphNode.SetValue(DependenciesGraphSchema.ResolvedProperty, dependency.Resolved); IEnumerable <IDependency> children = targetedSnapshot.GetDependencyChildren(dependency); if (children == null) { return; } var regularChildren = new List <IDependency>(); var fxAssembliesChildren = new List <IDependency>(); foreach (IDependency childDependency in children) { if (!childDependency.Visible) { continue; } if (childDependency.Flags.Contains(DependencyTreeFlags.FxAssemblyProjectFlags)) { fxAssembliesChildren.Add(childDependency); } else { regularChildren.Add(childDependency); } } bool isFxAssembliesFolder = dependencyGraphNode.GetValue <bool>(DependenciesGraphSchema.IsFrameworkAssemblyFolderProperty); if (isFxAssembliesFolder) { foreach (IDependency fxAssembly in fxAssembliesChildren) { Builder.AddGraphNode( graphContext, projectPath, dependencyGraphNode, fxAssembly.ToViewModel(targetedSnapshot)); } } else { foreach (IDependency childDependency in regularChildren) { Builder.AddGraphNode( graphContext, projectPath, dependencyGraphNode, childDependency.ToViewModel(targetedSnapshot)); } if (fxAssembliesChildren.Count > 0) { var fxAssembliesViewModel = new PackageFrameworkAssembliesViewModel(); GraphNode fxAssembliesNode = Builder.AddGraphNode(graphContext, projectPath, dependencyGraphNode, fxAssembliesViewModel); fxAssembliesNode.SetValue(DgmlNodeProperties.ContainsChildren, true); fxAssembliesNode.SetValue(DependenciesGraphSchema.IsFrameworkAssemblyFolderProperty, true); fxAssembliesNode.SetValue(DependenciesGraphSchema.DependencyIdProperty, dependency.Id); fxAssembliesNode.SetValue(DependenciesGraphSchema.ResolvedProperty, dependency.Resolved); } } }