Exemple #1
0
        public override bool HandleRequest(IGraphContext graphContext)
        {
            bool trackChanges = false;

            foreach (GraphNode inputGraphNode in graphContext.InputNodes)
            {
                if (graphContext.CancelToken.IsCancellationRequested)
                {
                    return(trackChanges);
                }

                string projectPath = inputGraphNode.Id.GetValue(CodeGraphNodeIdName.Assembly);
                if (string.IsNullOrEmpty(projectPath))
                {
                    continue;
                }

                IDependency dependency = GetDependency(inputGraphNode, out IDependenciesSnapshot snapshot);
                if (dependency == null || snapshot == null)
                {
                    continue;
                }

                IDependenciesGraphViewProvider viewProvider = ViewProviders
                                                              .FirstOrDefaultValue((x, d) => x.SupportsDependency(d), dependency);

                if (viewProvider == null)
                {
                    continue;
                }

                if (graphContext.TrackChanges)
                {
                    trackChanges = true;
                }

                using (var scope = new GraphTransactionScope())
                {
                    viewProvider.BuildGraph(
                        graphContext,
                        projectPath,
                        dependency,
                        inputGraphNode,
                        snapshot.Targets[dependency.TargetFramework]);

                    scope.Complete();
                }
            }

            return(trackChanges);
        }
Exemple #2
0
        protected override void ProcessInputNode(IGraphContext graphContext, GraphNode inputGraphNode, IDependency dependency, IDependenciesSnapshot snapshot, IDependenciesGraphViewProvider viewProvider, string projectPath, ref bool trackChanges)
        {
            if (graphContext.TrackChanges)
            {
                trackChanges = true;
            }

            viewProvider.BuildGraph(
                graphContext,
                projectPath,
                dependency,
                inputGraphNode,
                snapshot.Targets[dependency.TargetFramework]);
        }