/// <summary> /// Serializes all Folders including Permissions /// </summary> /// <param name="xmlTemplate">Reference to XmlDocument context</param> /// <param name="nodeFolders"></param> /// <param name="objportal">Portal to serialize</param> /// <param name="zipFile"></param> /// <remarks> /// The serialization uses the xml attributes defined in FolderInfo class. /// </remarks> /// <history> /// [cnurse] 11/08/2004 Created /// </history> public void SerializeFolders(XmlDocument xmlTemplate, XmlNode nodeFolders, PortalInfo objportal, ref ZipOutputStream zipFile) { // Sync db and filesystem before exporting so all required files are found FileSystemUtils.Synchronize(objportal.PortalID, objportal.AdministratorRoleId, objportal.HomeDirectoryMapPath); FolderController objFolders = new FolderController(); ArrayList arrFolders = objFolders.GetFoldersByPortal(objportal.PortalID); XmlSerializer xser = new XmlSerializer(typeof(FolderInfo)); foreach (FolderInfo objFolder in arrFolders) { StringWriter sw = new StringWriter(); xser.Serialize(sw, objFolder); XmlDocument xmlFolder = new XmlDocument(); xmlFolder.LoadXml(sw.GetStringBuilder().ToString()); XmlNode nodeFolder = xmlFolder.SelectSingleNode("folder"); nodeFolder.Attributes.Remove(nodeFolder.Attributes["xmlns:xsd"]); nodeFolder.Attributes.Remove(nodeFolder.Attributes["xmlns:xsi"]); //Serialize Folder Permissions XmlNode nodePermissions = xmlTemplate.CreateElement("folderpermissions"); SerializeFolderPermissions(xmlTemplate, nodePermissions, objportal, objFolder.FolderPath); nodeFolder.AppendChild(xmlFolder.ImportNode(nodePermissions, true)); // Serialize files XmlNode nodeFiles = xmlTemplate.CreateElement("files"); SerializeFiles(xmlTemplate, nodeFiles, objportal, objFolder.FolderPath, ref zipFile); nodeFolder.AppendChild(xmlFolder.ImportNode(nodeFiles, true)); nodeFolders.AppendChild(xmlTemplate.ImportNode(nodeFolder, true)); } }