/// <summary> /// Creates the node structure. /// </summary> /// <returns>The node.</returns> internal Node CreateNodes() { var node = new Node(ControllerList.CONTROLLER_CHILD_NODE); if (uuid != null) { node.Tag = uuid.ToString(); } node.Attributes.Add(GROUP_ATTRIBUTE, DeviceGroupHelper.ToString(group)); // *.pr0 files have the first member as the first node and the others listed at the end of the node list. if (members.Count > 0) { node.Children.AddLast(members.First.Value.CreateNodes()); } node.Children.AddLast(controls.CreateNodes()); node.Children.AddLast(shifts.CreateNodes()); if (members.Count > 1) { LinkedList <Member> .Enumerator enumerator = members.GetEnumerator(); enumerator.MoveNext(); while (enumerator.MoveNext()) { node.Children.AddLast(enumerator.Current.CreateNodes()); } } return(node); }