private static int AddFolder(int PortalId, string relativePath, int StorageLocation) { CommonLibrary.Services.FileSystem.FolderController objFolderController = new CommonLibrary.Services.FileSystem.FolderController(); bool isProtected = FileSystemUtils.DefaultProtectedFolders(relativePath); int FolderID = objFolderController.AddFolder(PortalId, relativePath, StorageLocation, isProtected, false); if (PortalId != Null.NullInteger) { SetFolderPermissions(PortalId, FolderID, relativePath); } return FolderID; }
private void ParseFolders(XmlNode nodeFolders, int PortalId) { int FolderId; FolderController objController = new FolderController(); FolderInfo objInfo; string folderPath; int storageLocation; bool isProtected = false; foreach (XmlNode node in nodeFolders.SelectNodes("//folder")) { folderPath = XmlUtils.GetNodeValue(node.CreateNavigator(), "folderpath"); objInfo = objController.GetFolder(PortalId, folderPath, false); if (objInfo == null) { isProtected = FileSystemUtils.DefaultProtectedFolders(folderPath); if (isProtected == true) { storageLocation = (int)FolderController.StorageLocationTypes.InsecureFileSystem; } else { storageLocation = Convert.ToInt32(XmlUtils.GetNodeValue(node, "storagelocation", "0")); isProtected = XmlUtils.GetNodeValueBoolean(node, "isprotected"); } FolderId = objController.AddFolder(PortalId, folderPath, storageLocation, isProtected, false); objInfo = objController.GetFolder(PortalId, folderPath, false); } else { FolderId = objInfo.FolderID; } XmlNodeList nodeFolderPermissions = node.SelectNodes("folderpermissions/permission"); ParseFolderPermissions(nodeFolderPermissions, PortalId, objInfo); XmlNodeList nodeFiles = node.SelectNodes("files/file"); if (!String.IsNullOrEmpty(folderPath)) { folderPath += "/"; } ParseFiles(nodeFiles, PortalId, objInfo); } }
public void ParseTemplate(int PortalId, string TemplatePath, string TemplateFile, int AdministratorId, PortalTemplateModuleAction mergeTabs, bool IsNewPortal) { XmlDocument xmlPortal = new XmlDocument(); XmlNode node; try { xmlPortal.Load(TemplatePath + TemplateFile); } catch { } node = xmlPortal.SelectSingleNode("//portal/settings"); if (node != null && IsNewPortal) { ParsePortalSettings(node, PortalId); } node = xmlPortal.SelectSingleNode("//portal/rolegroups"); if (node != null) { ParseRoleGroups(node.CreateNavigator(), PortalId, AdministratorId); } node = xmlPortal.SelectSingleNode("//portal/roles"); if (node != null) { ParseRoles(node.CreateNavigator(), PortalId, AdministratorId); } node = xmlPortal.SelectSingleNode("//portal/portalDesktopModules"); if (node != null) { ParsePortalDesktopModules(node.CreateNavigator(), PortalId); } node = xmlPortal.SelectSingleNode("//portal/folders"); if (node != null) { ParseFolders(node, PortalId); } var objController = new FolderController(); if (objController.GetFolder(PortalId, "", false) == null) { int folderid = objController.AddFolder(PortalId, "", (int)Services.FileSystem.FolderController.StorageLocationTypes.InsecureFileSystem, true, false); AddFolderPermissions(PortalId, folderid); } if (objController.GetFolder(PortalId, "Templates/", false) == null) { int folderid = objController.AddFolder(PortalId, "Templates/", (int)Services.FileSystem.FolderController.StorageLocationTypes.InsecureFileSystem, true, false); AddFolderPermissions(PortalId, folderid); } // force creation of templates folder if not present on template if (objController.GetFolder(PortalId, "Users/", false) == null) { int folderid = objController.AddFolder(PortalId, "Users/", (int)Services.FileSystem.FolderController.StorageLocationTypes.InsecureFileSystem, true, false); AddFolderPermissions(PortalId, folderid); } if (mergeTabs == PortalTemplateModuleAction.Replace) { var objTabs = new TabController(); TabInfo objTab; foreach (KeyValuePair<int, TabInfo> tabPair in objTabs.GetTabsByPortal(PortalId)) { objTab = tabPair.Value; objTab.TabName = objTab.TabName + "_old"; objTab.TabPath = Common.Globals.GenerateTabPath(objTab.ParentId, objTab.TabName); objTab.IsDeleted = true; objTabs.UpdateTab(objTab); var objModules = new ModuleController(); ModuleInfo objModule; foreach (KeyValuePair<int, ModuleInfo> modulePair in objModules.GetTabModules(objTab.TabID)) { objModule = modulePair.Value; objModules.DeleteTabModule(objModule.TabID, objModule.ModuleID, false); } } } node = xmlPortal.SelectSingleNode("//portal/tabs"); if (node != null) { string version = xmlPortal.DocumentElement.GetAttribute("version"); if (version != "5.0") { var xmlAdmin = new XmlDocument(); try { xmlAdmin.Load(TemplatePath + "admin.template"); } catch { } XmlNode adminNode = xmlAdmin.SelectSingleNode("//portal/tabs"); foreach (XmlNode adminTabNode in adminNode.ChildNodes) { node.AppendChild(xmlPortal.ImportNode(adminTabNode, true)); } } ParseTabs(node, PortalId, false, mergeTabs, IsNewPortal); } }