private List<VirtualDiskGroup> ParseVolumeGroup(XmlDocument document) { List<VirtualDiskGroup> virtualDiskGroupList = new List<VirtualDiskGroup>(); XmlNodeList nodeList = document.SelectNodes(@"//VolumeContainerGroup"); foreach (XmlNode node in nodeList) { VirtualDiskGroup virtualDiskGroup = new VirtualDiskGroup(); virtualDiskGroup.Name = node.Attributes["Name"].Value; virtualDiskGroup.InstanceId = node.Attributes["Id"].Value; foreach (XmlNode childNode in node.ChildNodes) { if ("VolumeID" == childNode.Name) { virtualDiskGroup.VirtualDiskList.Add(childNode.InnerText); } } virtualDiskGroupList.Add(virtualDiskGroup); } return virtualDiskGroupList; }
/// <summary> /// Parse Virtual disk group /// </summary> private void ParseVirtualDiskGroup() { this.virtualDiskGroupList = new List<VirtualDiskGroup>(); var backupDataInfoList = this.GetSubElements(doc.Root, "BackupData"); foreach (var backupData in backupDataInfoList) { // find items corresponding to var collectionsList = this.GetSubElements(backupData, "Collections"); foreach (var collections in collectionsList) { var collectionInfoList = this.GetSubElements(collections, "CollectionInfo"); foreach (var collectionInfo in collectionInfoList) { VirtualDiskGroup virtualDiskGroup = new VirtualDiskGroup(); virtualDiskGroup.VirtualDiskList = new List<string>(); foreach (var volumeGroupProperty in collectionInfo.Elements()) { if ("Alias" == volumeGroupProperty.Name.LocalName) { virtualDiskGroup.Name = volumeGroupProperty.Value; } else if ("Id" == volumeGroupProperty.Name.LocalName) { virtualDiskGroup.InstanceId = volumeGroupProperty.Value; } else if ("ExplicitVolumes" == volumeGroupProperty.Name.LocalName) { foreach (var volumeInfo in volumeGroupProperty.Elements()) { if ("VolumeInfo" == volumeInfo.Name.LocalName) { foreach (var volumeInfoItem in volumeInfo.Elements()) { if ("Id" == volumeInfoItem.Name.LocalName) { VirtualDisk disk = this.volumeList.Find(volume => volumeInfoItem.Value == volume.VSN); if (null != disk) { virtualDiskGroup.VirtualDiskList.Add(disk.InstanceId); } else { throw new MissingMemberException( string.Format(Resources.MigrationExpectedVolumeNotFound, volumeInfoItem.Value)); } break; } } } } } } this.virtualDiskGroupList.Add(virtualDiskGroup); } } } }