private Zone createZoneForXMLNode(XmlNode _zoneNode) { if (_zoneNode == null) { return(null); } try { Zone newZone = new Zone(); ZoneTrackMediaList mediaList; XmlNodeList nodesAssignedRooms; Room newRoom; newZone.udn = xmlDocumentHelper.getNodeAttributeValue(_zoneNode, "udn"); newZone.uuid = newZone.udn.Substring(5); mediaList = Global.getZoneTitleListManager().getListForZone(newZone.udn); if (mediaList != null) { newZone.trackListId = mediaList.listId; } if (String.IsNullOrWhiteSpace(newZone.udn)) { throw new Exception("Zone hat keinen UDN Identifier"); } nodesAssignedRooms = _zoneNode.SelectNodes("room"); if (nodesAssignedRooms != null) { foreach (XmlNode nodeRoom in nodesAssignedRooms) { newRoom = this.createRoomForXMLNode(nodeRoom); newRoom.zoneUDN = newZone.udn; rooms.Add(newRoom.udn, newRoom); this.writeLog(LogType.Info, String.Format("Raum '{0}' in Zone '{1}' gefunden", newRoom.name, newZone.udn)); this.linkRoomToRoomRenderer(newRoom); newZone.roomUDNs.Add(newRoom.udn); } } newZone.createZoneNameFromRooms(); this.writeLog(LogType.Info, String.Format("Zone UDN: '{0}' erstellt", newZone.udn)); return(newZone); } catch (Exception e) { this.writeLog(LogType.Error, "Fehler beim erstellen von Zone aus XML-Knoten", e, _zoneNode.InnerXml); return(null); } }
private Zone createZoneForXMLNode(XmlNode _zoneNode) { if (_zoneNode == null) return null; try { Zone newZone = new Zone(); ZoneTrackMediaList mediaList; XmlNodeList nodesAssignedRooms; Room newRoom; newZone.udn = xmlDocumentHelper.getNodeAttributeValue(_zoneNode, "udn"); newZone.uuid = newZone.udn.Substring(5); mediaList = Global.getZoneTitleListManager().getListForZone(newZone.udn); if (mediaList != null) newZone.trackListId = mediaList.listId; if (String.IsNullOrWhiteSpace(newZone.udn)) throw new Exception("Zone hat keinen UDN Identifier"); nodesAssignedRooms = _zoneNode.SelectNodes("room"); if (nodesAssignedRooms != null) { foreach (XmlNode nodeRoom in nodesAssignedRooms) { newRoom = this.createRoomForXMLNode(nodeRoom); newRoom.zoneUDN = newZone.udn; rooms.Add(newRoom.udn, newRoom); this.writeLog(LogType.Info, String.Format("Raum '{0}' in Zone '{1}' gefunden", newRoom.name, newZone.udn)); this.linkRoomToRoomRenderer(newRoom); newZone.roomUDNs.Add(newRoom.udn); } } newZone.createZoneNameFromRooms(); this.writeLog(LogType.Info, String.Format("Zone UDN: '{0}' erstellt", newZone.udn)); return newZone; } catch (Exception e) { this.writeLog(LogType.Error, "Fehler beim erstellen von Zone aus XML-Knoten", e, _zoneNode.InnerXml); return null; } }