public void AddPowerBars(List <PowerBar> powerBars) { foreach (var group in powerBars) { var item = new PowerBarItem(group); if (AllPowerBars == null) { AllPowerBars = new List <PowerBarItem>(); } AllPowerBars.Add(item); if (group.Groups != null && group.Groups.Any()) { foreach (var parent in group.Groups) { var parentItem = _groupsByID[parent.GroupID]; if (parentItem.PowerBars == null) { parentItem.PowerBars = new List <PowerBarItem>(); } parentItem.PowerBars.Add(item); if (item.Groups == null) { item.Groups = new List <GroupItem>(); } item.Groups.Add(parentItem); } } else { if (PowerBars == null) { PowerBars = new List <PowerBarItem>(); } PowerBars.Add(item); } } }
public void UpdateStatus() { ClearStatus(); bool isStatusInited = false; if (Groups != null && Groups.Any()) { foreach (var childGroupWithStatus in Groups.Where(x => x.HasStatus)) { if (isStatusInited) { UpdateStatusFromGroup(childGroupWithStatus); } else { InitStatusFromGroup(childGroupWithStatus); isStatusInited = true; } HasStatus = true; } } if (PowerBars != null && PowerBars.Any()) { if (!isStatusInited) { InitStatusFromPowerBar(PowerBars.First()); isStatusInited = true; } foreach (var childPowerBar in PowerBars) { UpdateStatusFromPowerBar(childPowerBar); } HasStatus = true; } }