internal HierarchyMember(Hierarchy Hierarchy, HierarchyMember ParentMember, Level Level, string UniqueNameInHierarchy) { this.Hierarchy = Hierarchy; this.UniqueName = UniqueNameInHierarchy; this.Level = Level; this.ParentMember = ParentMember; Hierarchy.Members[UniqueNameInHierarchy] = this; if (ParentMember==null) Hierarchy.FirstLevelMembers.Add(this); else ParentMember.Childs.Add(this); }
internal Level GetOrAddNextLevel4Member(HierarchyMember HierarchyMember) { int levelIndex; if(HierarchyMember==null) levelIndex=0; else levelIndex=HierarchyMember.Level.Index+1; Level result; if (Levels.Count <= levelIndex) { result = new Level(this,Levels.Count); Levels.Add(result); } else result = Levels[levelIndex]; return result; }