AddTabGroupChildren(Config.KpiSelection.TabHierarchy.TabBase);
private void AddTabGroupChildren(List<XmlTabBase> members)
{
members = members
.OrderBy(p => p.Order)
.ToList();
var children = members.OfType<XmlTabGroup>().ToLookup(group => group.GroupId);
foreach (var member in members.OfType<XmlTabGroup>().ToList())
{
member.TabBase.AddRange(new List<XmlTabGroup>(children[member.Order].ToList()));
member.TabBase = member.TabBase.OrderBy(p => p.Order).ToList();
if (member.GroupId != 0) members.RemoveAt(members.FindIndex(p => p.Order == member.Order));
}
}
AddTabGroupChildren(Config.KpiSelection.TabHierarchy.TabBase);
private void AddTabGroupChildren(List<XmlTabBase> members)
{
members = members
.OrderBy(p => p.Order)
.ToList();
var children = members.OfType<XmlTabGroup>().ToLookup(group => group.GroupId);
foreach (var member in members.OfType<XmlTabGroup>().ToList())
{
member.TabBase.AddRange(new List<XmlTabGroup>(children[member.Order].ToList()));
member.TabBase = member.TabBase.OrderBy(p => p.Order).ToList();
if (member.GroupId != 0) members.RemoveAt(members.FindIndex(p => p.Order == member.Order));
}
}