Ejemplo n.º 1
0
 internal RelationshipGraphNode(EntityToken entityToken, int level, RelationshipGraphNodeType relationshipGraphNodeType)
 {
     this.EntityToken = entityToken;
     this.Level       = level;
     this.NodeType    = relationshipGraphNodeType;
     this.ChildNode   = null;
     this.ParentNodes = new List <RelationshipGraphNode>();
 }
Ejemplo n.º 2
0
 internal RelationshipGraphNode(EntityToken entityToken, int level, RelationshipGraphNodeType relationshipGraphNodeType)
 {
     this.EntityToken = entityToken;
     this.Level = level;
     this.NodeType = relationshipGraphNodeType;
     this.ChildNode = null;
     this.ParentNodes = new List<RelationshipGraphNode>();
 }
Ejemplo n.º 3
0
        private void AddNewParentEntityTokens(RelationshipGraphNode childNode, IEnumerable <EntityToken> parents, RelationshipGraphNodeType nodeType, int levelNumber)
        {
            int newLevelNumber = levelNumber + 1;

            List <RelationshipGraphNode> levelNodes;

            if (!_levels.TryGetValue(newLevelNumber, out levelNodes))
            {
                levelNodes = new List <RelationshipGraphNode>();
                _levels.Add(newLevelNumber, levelNodes);
            }


            foreach (EntityToken parent in parents)
            {
                if (parent == null)
                {
                    continue;
                }

                if (_visitedEntityTokens.Contains(parent))
                {
                    if (_excludeReoccuringNodes)
                    {
                        continue; // We have already visited this entity token, no new information here
                    }
                }
                else
                {
                    _visitedEntityTokens.Add(parent);
                }


                var parentNode = new RelationshipGraphNode(parent, newLevelNumber, nodeType);

                levelNodes.Add(parentNode);

                childNode.ParentNodes.Add(parentNode);
                parentNode.ChildNode = childNode;

                _moreLevelsToExpend = true;
            }
        }
Ejemplo n.º 4
0
        private void AddNewParentEntityTokens(RelationshipGraphNode childNode, IEnumerable<EntityToken> parents, RelationshipGraphNodeType nodeType, int levelNumber)
        {
            int newLevelNumber = levelNumber + 1;

            List<RelationshipGraphNode> levelNodes;
            if (!_levels.TryGetValue(newLevelNumber, out levelNodes))
            {
                levelNodes = new List<RelationshipGraphNode>();
                _levels.Add(newLevelNumber, levelNodes);
            }

            foreach (EntityToken parent in parents)
            {
                if(parent == null)
                {
                    continue;
                }

                if (_visitedEntityTokens.Contains(parent))
                {
                    if (_excludeReoccuringNodes)
                    {
                        continue; // We have already visisted this entity token, no new information here
                    }
                }
                else
                {
                    _visitedEntityTokens.Add(parent);
                }

                var parentNode = new RelationshipGraphNode(parent, newLevelNumber, nodeType);

                levelNodes.Add(parentNode);

                childNode.ParentNodes.Add(parentNode);
                parentNode.ChildNode = childNode;

                _moreLevelsToExpend = true;
            }
        }