public void LoadFromXElement(XElement root) { if (root == null) { throw new ArgumentNullException(nameof(root)); } Name = root.Attribute("Name").Value; foreach (var childElement in root.Elements()) { switch (childElement.Name.LocalName) { case "composit": var composit = new MachineComposit(); composit.LoadFromXElement(childElement); Machines.Add(composit); break; case "machine": var machine = new Machine(); machine.LoadFromXElement(childElement); Machines.Add(machine); break; default: throw new XmlException("Root has unknown nodes!"); } } }
public Group(MachineComposit rootMachineComposit) { Name = rootMachineComposit.Name; SubGroups = new List<IGroup>(); foreach (var machine in rootMachineComposit.Machines.OfType<MachineComposit>()) { SubGroups.Add(new Group(machine)); } }
public ServiceHandlerComposite(MachineComposit machineComposit, int port) { if (machineComposit == null) { throw new ArgumentNullException(nameof(machineComposit)); } ServiceHandlers = new List<IServiceHandler>(); foreach (var machine in machineComposit.Machines) { if (machine is Machine) ServiceHandlers.Add(new ServiceHandler((machine as Machine).Ip, port, (machine as Machine).MacAdress)); if (machine is MachineComposit) ServiceHandlers.Add(new ServiceHandlerComposite(machine as MachineComposit, port)); } }