internal static object InstallBase(object obj, string minimalInstallerVersion) { Hashtable args = Utils.GetSetupParameters(obj); //check CS version string shellVersion = Utils.GetStringSetupParameter(args, Global.Parameters.ShellVersion); var shellMode = Utils.GetStringSetupParameter(args, Global.Parameters.ShellMode); Version version = new Version(shellVersion); //******************** Server **************** var serverSetup = new SetupVariables { ComponentId = Guid.NewGuid().ToString(), Instance = String.Empty, ComponentName = Global.Server.ComponentName, ComponentCode = Global.Server.ComponentCode, ComponentDescription = Global.Server.ComponentDescription, // ServerPassword = Guid.NewGuid().ToString("N").Substring(0, 10), // SetupAction = SetupActions.Install, IISVersion = Global.IISVersion, ApplicationName = Utils.GetStringSetupParameter(args, Global.Parameters.ApplicationName), Version = Utils.GetStringSetupParameter(args, Global.Parameters.Version), Installer = Utils.GetStringSetupParameter(args, Global.Parameters.Installer), InstallerPath = Utils.GetStringSetupParameter(args, Global.Parameters.InstallerPath), SetupXml = Utils.GetStringSetupParameter(args, Global.Parameters.SetupXml), // InstallerFolder = Path.Combine(Utils.GetStringSetupParameter(args, Global.Parameters.InstallerFolder), Global.Server.ComponentName), InstallerType = Utils.GetStringSetupParameter(args, Global.Parameters.InstallerType).Replace(Global.StandaloneServer.SetupController, Global.Server.SetupController), InstallationFolder = Path.Combine(Path.Combine(Utils.GetSystemDrive(), "SolidCP"), Global.Server.ComponentName), ConfigurationFile = "web.config", }; // Load config file AppConfig.LoadConfiguration(); // LoadComponentVariablesFromSetupXml(serverSetup.ComponentCode, serverSetup.SetupXml, serverSetup); // //serverSetup.ComponentConfig = AppConfig.CreateComponentConfig(serverSetup.ComponentId); //serverSetup.RemoteServerUrl = GetUrl(serverSetup.WebSiteDomain, serverSetup.WebSiteIP, serverSetup.WebSitePort); // //CreateComponentSettingsFromSetupVariables(serverSetup, serverSetup.ComponentId); //******************** Enterprise Server **************** var esServerSetup = new SetupVariables { ComponentId = Guid.NewGuid().ToString(), SetupAction = SetupActions.Install, IISVersion = Global.IISVersion, // Instance = String.Empty, ComponentName = Global.EntServer.ComponentName, ComponentCode = Global.EntServer.ComponentCode, ApplicationName = Utils.GetStringSetupParameter(args, Global.Parameters.ApplicationName), Version = Utils.GetStringSetupParameter(args, Global.Parameters.Version), ComponentDescription = Global.EntServer.ComponentDescription, Installer = Utils.GetStringSetupParameter(args, Global.Parameters.Installer), InstallerFolder = Path.Combine(Utils.GetStringSetupParameter(args, Global.Parameters.InstallerFolder), Global.EntServer.ComponentName), InstallerType = Utils.GetStringSetupParameter(args, Global.Parameters.InstallerType).Replace(Global.StandaloneServer.SetupController, Global.EntServer.SetupController), InstallationFolder = Path.Combine(Path.Combine(Utils.GetSystemDrive(), "SolidCP"), Global.EntServer.ComponentName), InstallerPath = Utils.GetStringSetupParameter(args, Global.Parameters.InstallerPath), SetupXml = Utils.GetStringSetupParameter(args, Global.Parameters.SetupXml), // ConfigurationFile = "web.config", ConnectionString = Global.EntServer.AspNetConnectionStringFormat, DatabaseServer = Global.EntServer.DefaultDbServer, Database = Global.EntServer.DefaultDatabase, CreateDatabase = true, UpdateServerAdminPassword = true, // WebSiteIP = Global.EntServer.DefaultIP, WebSitePort = Global.EntServer.DefaultPort, WebSiteDomain = String.Empty, }; // LoadComponentVariablesFromSetupXml(esServerSetup.ComponentCode, esServerSetup.SetupXml, esServerSetup); // //esServerSetup.ComponentConfig = AppConfig.CreateComponentConfig(esServerSetup.ComponentId); // //CreateComponentSettingsFromSetupVariables(esServerSetup, esServerSetup.ComponentId); //******************** Portal **************** #region Portal Setup Variables var portalSetup = new SetupVariables { ComponentId = Guid.NewGuid().ToString(), SetupAction = SetupActions.Install, IISVersion = Global.IISVersion, // Instance = String.Empty, ComponentName = Global.WebPortal.ComponentName, ComponentCode = Global.WebPortal.ComponentCode, ApplicationName = Utils.GetStringSetupParameter(args, Global.Parameters.ApplicationName), Version = Utils.GetStringSetupParameter(args, Global.Parameters.Version), ComponentDescription = Global.WebPortal.ComponentDescription, Installer = Utils.GetStringSetupParameter(args, Global.Parameters.Installer), InstallerFolder = Path.Combine(Utils.GetStringSetupParameter(args, Global.Parameters.InstallerFolder), Global.WebPortal.ComponentName), InstallerType = Utils.GetStringSetupParameter(args, Global.Parameters.InstallerType).Replace(Global.StandaloneServer.SetupController, Global.WebPortal.SetupController), InstallationFolder = Path.Combine(Path.Combine(Utils.GetSystemDrive(), "SolidCP"), Global.WebPortal.ComponentName), InstallerPath = Utils.GetStringSetupParameter(args, Global.Parameters.InstallerPath), SetupXml = Utils.GetStringSetupParameter(args, Global.Parameters.SetupXml), // ConfigurationFile = "web.config", EnterpriseServerURL = Global.WebPortal.DefaultEntServURL, }; // LoadComponentVariablesFromSetupXml(portalSetup.ComponentCode, portalSetup.SetupXml, portalSetup); // //portalSetup.ComponentConfig = AppConfig.CreateComponentConfig(portalSetup.ComponentId); // //CreateComponentSettingsFromSetupVariables(portalSetup, portalSetup.ComponentId); #endregion // var stdssam = new StandaloneServerActionManager(serverSetup, esServerSetup, portalSetup); // stdssam.PrepareDistributiveDefaults(); // if (shellMode.Equals(Global.SilentInstallerShell, StringComparison.OrdinalIgnoreCase)) { // Validate the setup controller's bootstrapper version if (version < new Version(minimalInstallerVersion)) { Utils.ShowConsoleErrorMessage(Global.Messages.InstallerVersionIsObsolete, minimalInstallerVersion); // return(false); } try { var success = true; // Retrieve SolidCP Enterprise Server component's settings from the command-line var adminPassword = Utils.GetStringSetupParameter(args, Global.Parameters.ServerAdminPassword); // This has been designed to make an installation process via Web PI more secure if (String.IsNullOrEmpty(adminPassword)) { // Set serveradmin password esServerSetup.ServerAdminPassword = Guid.NewGuid().ToString(); // Set peer admin password esServerSetup.PeerAdminPassword = Guid.NewGuid().ToString(); // Instruct provisioning scenario to enter the application in SCPA mode (Setup Control Panel Acounts) esServerSetup.EnableScpaMode = true; } else { esServerSetup.ServerAdminPassword = esServerSetup.PeerAdminPassword = adminPassword; } // esServerSetup.Database = Utils.GetStringSetupParameter(args, Global.Parameters.DatabaseName); esServerSetup.DatabaseServer = Utils.GetStringSetupParameter(args, Global.Parameters.DatabaseServer); esServerSetup.DbInstallConnectionString = SqlUtils.BuildDbServerMasterConnectionString( esServerSetup.DatabaseServer, Utils.GetStringSetupParameter(args, Global.Parameters.DbServerAdmin), Utils.GetStringSetupParameter(args, Global.Parameters.DbServerAdminPassword) ); // stdssam.ActionError += new EventHandler <ActionErrorEventArgs>((object sender, ActionErrorEventArgs e) => { Utils.ShowConsoleErrorMessage(e.ErrorMessage); // Log.WriteError(e.ErrorMessage); // success = false; }); // stdssam.Start(); // return(success); } catch (Exception ex) { Log.WriteError("Failed to install the component", ex); // return(false); } } else { // Validate the setup controller's bootstrapper version if (version < new Version(minimalInstallerVersion)) { MessageBox.Show(String.Format(Global.Messages.InstallerVersionIsObsolete, minimalInstallerVersion), "Setup Wizard", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return(DialogResult.Cancel); } // NOTE: there is no assignment to SetupVariables property of the wizard as usually because we have three components // to setup here and thus we have created SwapSetupVariablesAction setup action to swap corresponding variables // back and forth while executing the installation scenario. InstallerForm form = new InstallerForm(); Wizard wizard = form.Wizard; wizard.SetupVariables = serverSetup; // Assign corresponding action manager to the wizard. wizard.ActionManager = stdssam; // Initialize wizard pages and their properties var introPage = new IntroductionPage(); var licPage = new LicenseAgreementPage(); var page2 = new ConfigurationCheckPage(); // Setup prerequisites validation page2.Checks.AddRange(new ConfigurationCheck[] { new ConfigurationCheck(CheckTypes.OperationSystem, "Operating System Requirement") { SetupVariables = serverSetup }, new ConfigurationCheck(CheckTypes.IISVersion, "IIS Requirement") { SetupVariables = serverSetup }, new ConfigurationCheck(CheckTypes.ASPNET, "ASP.NET Requirement") { SetupVariables = serverSetup }, // Validate Server installation prerequisites new ConfigurationCheck(CheckTypes.SCPServer, "SolidCP Server Requirement") { SetupVariables = serverSetup }, // Validate EnterpriseServer installation prerequisites new ConfigurationCheck(CheckTypes.SCPEnterpriseServer, "SolidCP Enterprise Server Requirement") { SetupVariables = esServerSetup }, // Validate WebPortal installation prerequisites new ConfigurationCheck(CheckTypes.SCPPortal, "SolidCP Portal Requirement") { SetupVariables = portalSetup } }); // Assign WebPortal setup variables set to acquire corresponding settings var page3 = new WebPage { SetupVariables = portalSetup }; // Assign EnterpriseServer setup variables set to acquire corresponding settings var page4 = new DatabasePage { SetupVariables = esServerSetup }; // Assign EnterpriseServer setup variables set to acquire corresponding settings var page5 = new ServerAdminPasswordPage { SetupVariables = esServerSetup, NoteText = "Note: Both serveradmin and admin accounts will use this password. You can always change password for serveradmin or admin accounts through control panel." }; // var page6 = new ExpressInstallPage2(); // Assign WebPortal setup variables set to acquire corresponding settings var page7 = new SetupCompletePage { SetupVariables = portalSetup }; // wizard.Controls.AddRange(new Control[] { introPage, licPage, page2, page3, page4, page5, page6, page7 }); wizard.LinkPages(); wizard.SelectedPage = introPage; // Run wizard IWin32Window owner = args[Global.Parameters.ParentForm] as IWin32Window; return(form.ShowModal(owner)); } }
internal static object InstallBase(object obj, string minimalInstallerVersion) { var args = Utils.GetSetupParameters(obj); //check CS version var shellVersion = Utils.GetStringSetupParameter(args, "ShellVersion"); var shellMode = Utils.GetStringSetupParameter(args, Global.Parameters.ShellMode); var version = new Version(shellVersion); var setupVariables = new SetupVariables { ConnectionString = Global.EntServer.AspNetConnectionStringFormat, DatabaseServer = Global.EntServer.DefaultDbServer, Database = Global.EntServer.DefaultDatabase, CreateDatabase = true, WebSiteIP = Global.EntServer.DefaultIP, WebSitePort = Global.EntServer.DefaultPort, WebSiteDomain = String.Empty, NewWebSite = true, NewVirtualDirectory = false, ConfigurationFile = "web.config", UpdateServerAdminPassword = true, ServerAdminPassword = "", }; // InitInstall(args, setupVariables); // var eam = new EntServerActionManager(setupVariables); // eam.PrepareDistributiveDefaults(); // if (shellMode.Equals(Global.SilentInstallerShell, StringComparison.OrdinalIgnoreCase)) { if (version < new Version(minimalInstallerVersion)) { Utils.ShowConsoleErrorMessage(Global.Messages.InstallerVersionIsObsolete, minimalInstallerVersion); // return(false); } try { var success = true; // setupVariables.ServerAdminPassword = Utils.GetStringSetupParameter(args, Global.Parameters.ServerAdminPassword); setupVariables.Database = Utils.GetStringSetupParameter(args, Global.Parameters.DatabaseName); setupVariables.DatabaseServer = Utils.GetStringSetupParameter(args, Global.Parameters.DatabaseServer); // setupVariables.DbInstallConnectionString = SqlUtils.BuildDbServerMasterConnectionString( setupVariables.DatabaseServer, Utils.GetStringSetupParameter(args, Global.Parameters.DbServerAdmin), Utils.GetStringSetupParameter(args, Global.Parameters.DbServerAdminPassword) ); // eam.ActionError += new EventHandler <ActionErrorEventArgs>((object sender, ActionErrorEventArgs e) => { Utils.ShowConsoleErrorMessage(e.ErrorMessage); // Log.WriteError(e.ErrorMessage); // success = false; }); // eam.Start(); // return(success); } catch (Exception ex) { Log.WriteError("Failed to install the component", ex); // return(false); } } else { if (version < new Version(minimalInstallerVersion)) { MessageBox.Show(string.Format(Global.Messages.InstallerVersionIsObsolete, minimalInstallerVersion), "Setup Wizard", MessageBoxButtons.OK, MessageBoxIcon.Warning); return(DialogResult.Cancel); } InstallerForm form = new InstallerForm(); Wizard wizard = form.Wizard; wizard.SetupVariables = setupVariables; wizard.ActionManager = eam; //Unattended setup LoadSetupVariablesFromSetupXml(wizard.SetupVariables.SetupXml, wizard.SetupVariables); //create wizard pages var introPage = new IntroductionPage(); var licPage = new LicenseAgreementPage(); var page1 = new ConfigurationCheckPage(); // ConfigurationCheck check1 = new ConfigurationCheck(CheckTypes.OperationSystem, "Operating System Requirement") { SetupVariables = setupVariables }; ConfigurationCheck check2 = new ConfigurationCheck(CheckTypes.IISVersion, "IIS Requirement") { SetupVariables = setupVariables }; ConfigurationCheck check3 = new ConfigurationCheck(CheckTypes.ASPNET, "ASP.NET Requirement") { SetupVariables = setupVariables }; // page1.Checks.AddRange(new ConfigurationCheck[] { check1, check2, check3 }); // var page2 = new InstallFolderPage(); var page3 = new WebPage(); var page4 = new UserAccountPage(); var page5 = new DatabasePage(); var passwordPage = new ServerAdminPasswordPage(); // var page6 = new ExpressInstallPage2(); // var page7 = new FinishPage(); wizard.Controls.AddRange(new Control[] { introPage, licPage, page1, page2, page3, page4, page5, passwordPage, page6, page7 }); wizard.LinkPages(); wizard.SelectedPage = introPage; //show wizard IWin32Window owner = args[Global.Parameters.ParentForm] as IWin32Window; return(form.ShowModal(owner)); } }