private static void CacheMappedDirectory() { Services.FileSystem.FolderController objFolderController = new Services.FileSystem.FolderController(); PortalController objPortalController = new PortalController(); ArrayList arrPortals = objPortalController.GetPortals(); int i; for (i = 0; i <= arrPortals.Count - 1; i++) { PortalInfo objPortalInfo = (PortalInfo)arrPortals[i]; objFolderController.SetMappedDirectory(objPortalInfo, HttpContext.Current); } }
public int CreatePortal(string PortalName, UserInfo objAdminUser, string Description, string KeyWords, string TemplatePath, string TemplateFile, string HomeDirectory, string PortalAlias, string ServerPath, string ChildPath, bool IsChildPortal) { Services.FileSystem.FolderController objFolderController = new Services.FileSystem.FolderController(); string strMessage = Null.NullString; int AdministratorId = Null.NullInteger; int intPortalId = CreatePortal(PortalName, HomeDirectory); if (intPortalId != -1) { if (String.IsNullOrEmpty(HomeDirectory)) { HomeDirectory = "Portals/" + intPortalId.ToString(); } string MappedHomeDirectory = objFolderController.GetMappedDirectory(Common.Globals.ApplicationPath + "/" + HomeDirectory + "/"); strMessage += CreateProfileDefinitions(intPortalId, TemplatePath, TemplateFile); if (strMessage == Null.NullString) { try { objAdminUser.PortalID = intPortalId; UserCreateStatus createStatus = UserController.CreateUser(ref objAdminUser); if (createStatus == UserCreateStatus.Success) { AdministratorId = objAdminUser.UserID; } else { strMessage += UserController.GetUserCreateStatus(createStatus); } } catch (Exception Exc) { strMessage += Localization.GetString("CreateAdminUser.Error") + Exc.Message + Exc.StackTrace; } } else { throw new Exception(strMessage); } if (String.IsNullOrEmpty(strMessage) && AdministratorId > 0) { try { if (Directory.Exists(MappedHomeDirectory)) { Globals.DeleteFolderRecursive(MappedHomeDirectory); } } catch (Exception Exc) { strMessage += Localization.GetString("DeleteUploadFolder.Error") + Exc.Message + Exc.StackTrace; } if (strMessage == Null.NullString) { try { if (IsChildPortal) { if (!Directory.Exists(ChildPath)) { System.IO.Directory.CreateDirectory(ChildPath); } if (!File.Exists(ChildPath + "\\" + Globals.glbDefaultPage)) { System.IO.File.Copy(Common.Globals.HostMapPath + "subhost.aspx", ChildPath + "\\" + Globals.glbDefaultPage); } } } catch (Exception Exc) { strMessage += Localization.GetString("ChildPortal.Error") + Exc.Message + Exc.StackTrace; } } else { throw new Exception(strMessage); } if (strMessage == Null.NullString) { try { System.IO.Directory.CreateDirectory(MappedHomeDirectory); //ensure that the Templates folder exists string templateFolder = String.Format("{0}Templates", MappedHomeDirectory); if (!Directory.Exists(templateFolder)) { System.IO.Directory.CreateDirectory(templateFolder); } //ensure that the Users folder exists string usersFolder = String.Format("{0}Users", MappedHomeDirectory); if (!Directory.Exists(usersFolder)) { System.IO.Directory.CreateDirectory(usersFolder); } //copy the default page template CopyPageTemplate("Default.page.template", MappedHomeDirectory); CopyPageTemplate("UserProfile.page.template", MappedHomeDirectory); // process zip resource file if present ProcessResourceFile(MappedHomeDirectory, TemplatePath + TemplateFile); } catch (Exception Exc) { strMessage += Localization.GetString("ChildPortal.Error") + Exc.Message + Exc.StackTrace; } } else { throw new Exception(strMessage); } if (strMessage == Null.NullString) { try { ParseTemplate(intPortalId, TemplatePath, TemplateFile, AdministratorId, PortalTemplateModuleAction.Replace, true); } catch (Exception Exc) { strMessage += Localization.GetString("PortalTemplate.Error") + Exc.Message + Exc.StackTrace; } } else { throw new Exception(strMessage); } if (strMessage == Null.NullString) { PortalInfo objportal = GetPortal(intPortalId); objportal.Description = Description; objportal.KeyWords = KeyWords; objportal.UserTabId = TabController.GetTabByTabPath(objportal.PortalID, "//UserProfile"); UpdatePortalInfo(objportal.PortalID, objportal.PortalName, objportal.LogoFile, objportal.FooterText, objportal.ExpiryDate, objportal.UserRegistration, objportal.BannerAdvertising, objportal.Currency, objportal.AdministratorId, objportal.HostFee, objportal.HostSpace, objportal.PageQuota, objportal.UserQuota, objportal.PaymentProcessor, objportal.ProcessorUserId, objportal.ProcessorPassword, objportal.Description, objportal.KeyWords, objportal.BackgroundFile, objportal.SiteLogHistory, objportal.SplashTabId, objportal.HomeTabId, objportal.LoginTabId, objportal.RegisterTabId, objportal.UserTabId, objportal.DefaultLanguage, objportal.TimeZoneOffset, objportal.HomeDirectory); objAdminUser.Profile.PreferredLocale = objportal.DefaultLanguage; objAdminUser.Profile.TimeZone = objportal.TimeZoneOffset; UserController.UpdateUser(objportal.PortalID, objAdminUser); DesktopModuleController.AddDesktopModulesToPortal(intPortalId); Localization.AddLanguagesToPortal(intPortalId); AddPortalAlias(intPortalId, PortalAlias); try { Services.Log.EventLog.LogInfo objEventLogInfo = new Services.Log.EventLog.LogInfo(); objEventLogInfo.BypassBuffering = true; objEventLogInfo.LogTypeKey = CommonLibrary.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString(); objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("Install Portal:", PortalName)); objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("FirstName:", objAdminUser.FirstName)); objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("LastName:", objAdminUser.LastName)); objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("Username:"******"Email:", objAdminUser.Email)); objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("Description:", Description)); objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("Keywords:", KeyWords)); objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("TemplatePath:", TemplatePath)); objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("TemplateFile:", TemplateFile)); objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("HomeDirectory:", HomeDirectory)); objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("PortalAlias:", PortalAlias)); objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("ServerPath:", ServerPath)); objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("ChildPath:", ChildPath)); objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("IsChildPortal:", IsChildPortal.ToString())); Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController(); objEventLog.AddLog(objEventLogInfo); } catch (Exception ex) { ex.ToString(); } } else { throw new Exception(strMessage); } } else { DeletePortalInfo(intPortalId); intPortalId = -1; throw new Exception(strMessage); } } else { strMessage += Localization.GetString("CreatePortal.Error"); throw new Exception(strMessage); } return intPortalId; }