protected override void PopulateDisplayMembers() { List <T> allChildren = new List <T>(); if (typeof(T).Equals(typeof(ExtendedHierarchyMember))) { foreach (int selectedMember in SelectedMembers.Distinct()) { if (Members.FirstOrDefault(x => x.Id == selectedMember) is ExtendedHierarchyMember member) { allChildren.AddRange((Members as List <ExtendedHierarchyMember>).Where(x => x.Left > member.Left && x.Right < member.Right) as List <T>); } } } DisplayMembers = allChildren.Distinct(); }
protected override void PopulateDisplayMembers() { List <T> parents = new List <T>(); MetaDataManager metaDataManager = new MetaDataManager(); if (typeof(T).Equals(typeof(ExtendedHierarchyMember))) { foreach (int selectedMember in SelectedMembers.Distinct()) { T member = Members.FirstOrDefault(x => x.Id == selectedMember); if (member != null) { parents.Add(member); List <int> ancestors = metaDataManager.GetAncestors((member as ExtendedHierarchyMember).Lineage); List <ExtendedHierarchyMember> members = (Members as List <ExtendedHierarchyMember>).Where(x => ancestors.Contains(x.Id) && x.MemberType == MemberType.Rollup).ToList(); if (members != null && members.Count > 0) { parents.AddRange(members as List <T>); } } } } //else if (typeof(T).Equals(typeof(TimeHierarchy))) //{ // foreach (int selectedMember in SelectedMembers.Distinct()) // { // T member = Members.FirstOrDefault(x => x.Id == selectedMember); // if (member != null) // { // parents.Add(member); // List<int> ancestors = metaDataManager.GetAncestors((member as TimeHierarchy).Lineage); // List<TimeHierarchy> members = (Members as List<TimeHierarchy>).Where(x => ancestors.Contains(x.Id) && x.Level < 4).ToList(); // if (members != null && members.Count > 0) // { // parents.AddRange(members as List<T>); // } // } // } //} DisplayMembers = parents.Distinct(); }
protected virtual void PopulatePostProcessDeleteMemberIDs() { List <T> selectedAndAllChildren = new List <T>(); if (typeof(T).Equals(typeof(ExtendedHierarchyMember))) { foreach (int selectedMember in SelectedMembers.Distinct()) { if (Members.FirstOrDefault(x => x.Id == selectedMember) is ExtendedHierarchyMember member) { if (member != null) { List <ExtendedHierarchyMember> members = (Members as List <ExtendedHierarchyMember>).Where(x => x.Left >= member.Left && x.Right <= member.Right).ToList(); if (members != null && members.Count > 0) { selectedAndAllChildren.AddRange(members as List <T>); } } } } } else if (typeof(T).Equals(typeof(TimeHierarchy))) { foreach (int selectedMember in SelectedMembers.Distinct()) { if (Members.FirstOrDefault(x => x.Id == selectedMember) is TimeHierarchy member) { if (member != null) { List <TimeHierarchy> members = (Members as List <TimeHierarchy>).Where(x => x.Left >= member.Left && x.Right <= member.Right).ToList(); if (members != null && members.Count > 0) { selectedAndAllChildren.AddRange(members as List <T>); } } } } } PostProcessDeleteMemberIDs = selectedAndAllChildren.Distinct().Select(x => x.Id).Except(DisplayMembers.Select(z => z.Id)); }
protected virtual void PopulateRelevantLeafMembers() { List <T> leaves = new List <T>(); if (typeof(T).Equals(typeof(ExtendedHierarchyMember))) { foreach (int selectedMember in SelectedMembers.Distinct()) { if (Members.FirstOrDefault(x => x.Id == selectedMember) is ExtendedHierarchyMember member) { if (member != null) { List <ExtendedHierarchyMember> members = (Members as List <ExtendedHierarchyMember>).Where(x => x.Left >= member.Left && x.Right <= member.Right && x.MemberType == MemberType.Member).ToList(); if (members != null && members.Count > 0) { leaves.AddRange(members as List <T>); } } } } } else if (typeof(T).Equals(typeof(TimeHierarchy))) { foreach (int selectedMember in SelectedMembers.Distinct()) { if (Members.FirstOrDefault(x => x.Id == selectedMember) is TimeHierarchy member) { if (member != null) { List <TimeHierarchy> members = (Members as List <TimeHierarchy>).Where(x => x.Left >= member.Left && x.Right <= member.Right && x.Level == 4).ToList(); if (members != null && members.Count > 0) { leaves.AddRange(members as List <T>); } } } } } RelevantLeafIDs = leaves.Distinct().Select(x => x.Id); }
protected override void PopulateDisplayMembers() { List <T> selectedAndChildren = new List <T>(); if (typeof(T).Equals(typeof(ExtendedHierarchyMember))) { foreach (int selectedMember in SelectedMembers.Distinct()) { if (Members.FirstOrDefault(x => x.Id == selectedMember) is ExtendedHierarchyMember member) { if (member != null) { List <ExtendedHierarchyMember> members = (Members as List <ExtendedHierarchyMember>).Where(x => x.Id == member.Id || x.ParentId == member.Id).ToList(); if (members != null && members.Count > 0) { selectedAndChildren.AddRange(members as List <T>); } } } } } else if (typeof(T).Equals(typeof(TimeHierarchy))) { foreach (int selectedMember in SelectedMembers.Distinct()) { if (Members.FirstOrDefault(x => x.Id == selectedMember) is TimeHierarchy member) { if (member != null) { List <TimeHierarchy> members = (Members as List <TimeHierarchy>).Where(x => x.Id == member.Id || x.ParentId == member.Id).ToList(); if (members != null && members.Count > 0) { selectedAndChildren.AddRange(members as List <T>); } } } } } DisplayMembers = selectedAndChildren.Distinct(); }
protected override void PopulateDisplayMembers() { List <T> leaves = new List <T>(); if (typeof(T).Equals(typeof(ExtendedHierarchyMember))) { foreach (int selectedMember in SelectedMembers.Distinct()) { T member = Members.FirstOrDefault(x => x.Id == selectedMember); if (member != null) { leaves.Add(member); List <ExtendedHierarchyMember> members = (Members as List <ExtendedHierarchyMember>).Where(x => x.Left >= (member as ExtendedHierarchyMember).Left && x.Right <= (member as ExtendedHierarchyMember).Right && x.MemberType == MemberType.Member).ToList(); if (members != null && members.Count > 0) { leaves.AddRange(members as List <T>); } } } } else if (typeof(T).Equals(typeof(TimeHierarchy))) { foreach (int selectedMember in SelectedMembers.Distinct()) { T member = Members.FirstOrDefault(x => x.Id == selectedMember); if (member != null) { leaves.Add(member); List <TimeHierarchy> members = (Members as List <TimeHierarchy>).Where(x => x.Left >= (member as TimeHierarchy).Left && x.Right <= (member as TimeHierarchy).Right && x.Level == 4).ToList(); if (members != null && members.Count > 0) { leaves.AddRange(members as List <T>); } } } } DisplayMembers = leaves.Distinct(); }
protected override void PopulateDisplayMembers() { if (typeof(T).Equals(typeof(ExtendedHierarchyMember))) { List <ExtendedHierarchyMember> members = (Members as List <ExtendedHierarchyMember>).Where(x => SelectedMembers.Distinct().Contains(x.ParentId)).ToList(); DisplayMembers = members as List <T>; } else if (typeof(T).Equals(typeof(TimeHierarchy))) { List <TimeHierarchy> members = (Members as List <TimeHierarchy>).Where(x => SelectedMembers.Distinct().Contains(x.ParentId)).ToList(); DisplayMembers = members as List <T>; } }
protected override void PopulateDisplayMembers() { DisplayMembers = Members.Where(x => SelectedMembers.Distinct().Contains(x.Id)).ToList(); }