private static void MergeStructure(XmlNode sectionNode, SectionType sectionType) { MetadataDocumentManagement metaDataDocMgt = MetadataDocumentManagement.Instance; if (sectionType == SectionType.Actions) { foreach (XmlNode childNode in sectionNode.ChildNodes) { /* TODO !!! TEMPORARY !!! we should change TransformPages.xml instead! */ XmlNode destinationNode = metaDataDocMgt.XmlCurrentFormNode.SelectSingleNode("./a:Actions/a:" + childNode.Name, metaDataDocMgt.XmlNamespaceMgt); if (destinationNode == null) { XmlNode actionsNode = metaDataDocMgt.XmlCurrentFormNode.SelectSingleNode("./a:Actions", metaDataDocMgt.XmlNamespaceMgt); XmlUtility.InsertNodeWithPropertyChild(actionsNode, childNode.Name, metaDataDocMgt.CalcId(null, null, childNode.Name) /*metaDataDocMgt.GetNewId */); destinationNode = metaDataDocMgt.XmlCurrentFormNode.SelectSingleNode("./a:Actions/a:" + childNode.Name, metaDataDocMgt.XmlNamespaceMgt); } MergeComplexStructure(childNode, destinationNode); } } if (sectionType == SectionType.Controls) { foreach (XmlNode childNode in sectionNode.ChildNodes) { XmlNode destinationNode = metaDataDocMgt.XmlCurrentFormNode.SelectSingleNode("./a:Controls/a:" + childNode.Name, metaDataDocMgt.XmlNamespaceMgt); if (destinationNode == null) { XmlNode controlsNode = metaDataDocMgt.XmlCurrentFormNode.SelectSingleNode("./a:Controls", metaDataDocMgt.XmlNamespaceMgt); XmlUtility.InsertNodeWithPropertyChild(controlsNode, childNode.Name, metaDataDocMgt.CalcId(null, null, childNode.Name) /* metaDataDocMgt.GetNewId */); destinationNode = metaDataDocMgt.XmlCurrentFormNode.SelectSingleNode("./a:Controls/a:" + childNode.Name, metaDataDocMgt.XmlNamespaceMgt); } MergeComplexStructure(childNode, destinationNode); } } }