XLibrary.NodeModel.AddIntermediateDependency C# (CSharp) Method

AddIntermediateDependency() private method

private AddIntermediateDependency ( NodeModel sub ) : void
sub NodeModel
return void
        internal void AddIntermediateDependency(NodeModel sub)
        {
            if (DependencyChainOut == null)
                DependencyChainOut = new Dictionary<int, NodeModel>();
            DependencyChainOut[sub.ID] = sub;

            if (sub.DependencyChainIn == null)
                sub.DependencyChainIn = new Dictionary<int, NodeModel>();
            sub.DependencyChainIn[ID] = this;
        }

Usage Example

Beispiel #1
0
        public bool FindChainTo(NodeModel n, List <int> find, HashSet <int> traversed = null)
        {
            if (traversed == null)
            {
                traversed = new HashSet <int>();
            }

            if (traversed.Contains(n.ID))
            {
                return(false);
            }

            traversed.Add(n.ID);

            bool pathFound = false;

            if (n.XNode.Dependencies == null)
            {
                return(false);
            }

            foreach (var d in n.XNode.Dependencies)
            {
                var  sub     = Model.NodeModels[d];
                bool addLink = false;

                if (find.Contains(d))
                {
                    addLink = true;
                    find.Remove(d);
                }

                if (find.Count > 0 && FindChainTo(sub, find, traversed))
                {
                    addLink = true;
                }

                if (addLink)
                {
                    PositionMap[sub.ID] = sub;

                    n.AddIntermediateDependency(sub);
                    pathFound = true;
                }
            }

            return(pathFound);
        }
All Usage Examples Of XLibrary.NodeModel::AddIntermediateDependency