예제 #1
0
파일: Server.cs 프로젝트: pasamsin/SolidCP
        public static object Update(object obj)
        {
            Hashtable args = Utils.GetSetupParameters(obj);

            var setupVariables = new SetupVariables
            {
                ComponentId     = Utils.GetStringSetupParameter(args, Global.Parameters.ComponentId),
                SetupAction     = SetupActions.Update,
                BaseDirectory   = Utils.GetStringSetupParameter(args, Global.Parameters.BaseDirectory),
                UpdateVersion   = Utils.GetStringSetupParameter(args, "UpdateVersion"),
                InstallerFolder = Utils.GetStringSetupParameter(args, Global.Parameters.InstallerFolder),
                Installer       = Utils.GetStringSetupParameter(args, Global.Parameters.Installer),
                InstallerType   = Utils.GetStringSetupParameter(args, Global.Parameters.InstallerType),
                InstallerPath   = Utils.GetStringSetupParameter(args, Global.Parameters.InstallerPath)
            };

            AppConfig.LoadConfiguration();

            InstallerForm form   = new InstallerForm();
            Wizard        wizard = form.Wizard;

            //
            wizard.SetupVariables = setupVariables;
            //
            AppConfig.LoadComponentSettings(wizard.SetupVariables);

            IntroductionPage     introPage = new IntroductionPage();
            LicenseAgreementPage licPage   = new LicenseAgreementPage();
            ExpressInstallPage   page2     = new ExpressInstallPage();
            //create install currentScenario
            InstallAction action = new InstallAction(ActionTypes.Backup);

            action.Description = "Backing up...";
            page2.Actions.Add(action);

            action             = new InstallAction(ActionTypes.DeleteFiles);
            action.Description = "Deleting files...";
            action.Path        = "setup\\delete.txt";
            page2.Actions.Add(action);

            action             = new InstallAction(ActionTypes.CopyFiles);
            action.Description = "Copying files...";
            page2.Actions.Add(action);

            action             = new InstallAction(ActionTypes.UpdateConfig);
            action.Description = "Updating system configuration...";
            page2.Actions.Add(action);

            FinishPage page3 = new FinishPage();

            wizard.Controls.AddRange(new Control[] { introPage, licPage, page2, page3 });
            wizard.LinkPages();
            wizard.SelectedPage = introPage;

            //show wizard
            IWin32Window owner = args[Global.Parameters.ParentForm] as IWin32Window;

            return(form.ShowModal(owner));
        }
예제 #2
0
        public static DialogResult Update(object obj)
        {
            Hashtable args = Utils.GetSetupParameters(obj);

            var setupVariables = new SetupVariables
            {
                ComponentId = Utils.GetStringSetupParameter(args, Global.Parameters.ComponentId),
                SetupAction = SetupActions.Update,
                IISVersion  = Global.IISVersion
            };

            AppConfig.LoadConfiguration();

            InstallerForm form   = new InstallerForm();
            Wizard        wizard = form.Wizard;

            wizard.SetupVariables = setupVariables;
            //
            AppConfig.LoadComponentSettings(wizard.SetupVariables);

            IntroductionPage     introPage = new IntroductionPage();
            LicenseAgreementPage licPage   = new LicenseAgreementPage();
            ExpressInstallPage   page2     = new ExpressInstallPage();
            //create install currentScenario
            InstallAction action = new InstallAction(ActionTypes.Backup);

            action.Description = "Backing up...";
            page2.Actions.Add(action);

            action             = new InstallAction(ActionTypes.DeleteFiles);
            action.Description = "Deleting files...";
            action.Path        = "setup\\delete.txt";
            page2.Actions.Add(action);

            action             = new InstallAction(ActionTypes.CopyFiles);
            action.Description = "Copying files...";
            page2.Actions.Add(action);

            action             = new InstallAction(ActionTypes.ExecuteSql);
            action.Description = "Updating database...";
            action.Path        = "setup\\update_db.sql";
            page2.Actions.Add(action);

            action             = new InstallAction(ActionTypes.UpdateConfig);
            action.Description = "Updating system configuration...";
            page2.Actions.Add(action);

            FinishPage page3 = new FinishPage();

            wizard.Controls.AddRange(new Control[] { introPage, licPage, page2, page3 });
            wizard.LinkPages();
            wizard.SelectedPage = introPage;

            //show wizard
            Form parentForm = args[Global.Parameters.ParentForm] as Form;

            return(form.ShowDialog(parentForm));
        }
예제 #3
0
        public static DialogResult Setup(object obj)
        {
            Hashtable args         = Utils.GetSetupParameters(obj);
            string    shellVersion = Utils.GetStringSetupParameter(args, "ShellVersion");
            //
            var setupVariables = new SetupVariables
            {
                ComponentId       = Utils.GetStringSetupParameter(args, Global.Parameters.ComponentId),
                ConfigurationFile = "web.config",
                IISVersion        = Global.IISVersion,
                SetupAction       = SetupActions.Setup
            };

            //
            AppConfig.LoadConfiguration();

            InstallerForm form   = new InstallerForm();
            Wizard        wizard = form.Wizard;

            wizard.SetupVariables = setupVariables;
            //
            AppConfig.LoadComponentSettings(wizard.SetupVariables);

            //IntroductionPage page1 = new IntroductionPage();
            WebPage page1 = new WebPage();
            ServerAdminPasswordPage page2 = new ServerAdminPasswordPage();
            ExpressInstallPage      page3 = new ExpressInstallPage();
            //create install currentScenario
            InstallAction action = new InstallAction(ActionTypes.UpdateWebSite);

            action.Description = "Updating web site...";
            page3.Actions.Add(action);

            action             = new InstallAction(ActionTypes.UpdateServerAdminPassword);
            action.Description = "Updating serveradmin password...";
            page3.Actions.Add(action);

            action             = new InstallAction(ActionTypes.UpdateConfig);
            action.Description = "Updating system configuration...";
            page3.Actions.Add(action);


            FinishPage page4 = new FinishPage();

            wizard.Controls.AddRange(new Control[] { page1, page2, page3, page4 });
            wizard.LinkPages();
            wizard.SelectedPage = page1;

            //show wizard
            IWin32Window owner = args[Global.Parameters.ParentForm] as IWin32Window;

            return(form.ShowModal(owner));
        }
예제 #4
0
        public static DialogResult SetupBase(object obj)
        {
            Hashtable args         = Utils.GetSetupParameters(obj);
            string    shellVersion = Utils.GetStringSetupParameter(args, "ShellVersion");
            string    componentId  = Utils.GetStringSetupParameter(args, "ComponentId");

            AppConfig.LoadConfiguration();

            InstallerForm form   = new InstallerForm();
            Wizard        wizard = form.Wizard;

            wizard.SetupVariables.SetupAction = SetupActions.Setup;
            LoadSetupVariablesFromConfig(wizard.SetupVariables, componentId);
            wizard.SetupVariables.WebSiteId           = AppConfig.GetComponentSettingStringValue(componentId, "WebSiteId");
            wizard.SetupVariables.WebSiteIP           = AppConfig.GetComponentSettingStringValue(componentId, "WebSiteIP");
            wizard.SetupVariables.WebSitePort         = AppConfig.GetComponentSettingStringValue(componentId, "WebSitePort");
            wizard.SetupVariables.WebSiteDomain       = AppConfig.GetComponentSettingStringValue(componentId, "WebSiteDomain");
            wizard.SetupVariables.NewWebSite          = AppConfig.GetComponentSettingBooleanValue(componentId, "NewWebSite");
            wizard.SetupVariables.NewVirtualDirectory = AppConfig.GetComponentSettingBooleanValue(componentId, "NewVirtualDirectory");
            wizard.SetupVariables.VirtualDirectory    = AppConfig.GetComponentSettingStringValue(componentId, "VirtualDirectory");
            wizard.SetupVariables.IISVersion          = Utils.GetVersionSetupParameter(args, "IISVersion");
            //IntroductionPage page1 = new IntroductionPage();
            WebPage            page2 = new WebPage();
            ExpressInstallPage page3 = new ExpressInstallPage();
            //create install currentScenario
            InstallAction action = new InstallAction(ActionTypes.UpdateWebSite);

            action.Description = "Updating web site...";
            page3.Actions.Add(action);

            action             = new InstallAction(ActionTypes.UpdateConfig);
            action.Description = "Updating system configuration...";
            page3.Actions.Add(action);

            FinishPage page4 = new FinishPage();

            wizard.Controls.AddRange(new Control[] { page2, page3, page4 });
            wizard.LinkPages();
            wizard.SelectedPage = page2;

            //show wizard
            IWin32Window owner = args["ParentForm"] as IWin32Window;

            return(form.ShowModal(owner));
        }
예제 #5
0
        public static DialogResult UpdateBase(object obj, string minimalInstallerVersion,
                                              string versionsToUpgrade, bool updateSql, InstallAction versionSpecificAction)
        {
            Hashtable args         = Utils.GetSetupParameters(obj);
            string    shellVersion = Utils.GetStringSetupParameter(args, "ShellVersion");

            Version version = new Version(shellVersion);

            if (version < new Version(minimalInstallerVersion))
            {
                MessageBox.Show(
                    string.Format("SolidCP Installer {0} or higher required.", minimalInstallerVersion),
                    "Setup Wizard", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(DialogResult.Cancel);
            }
            // Load application configuration
            AppConfig.LoadConfiguration();
            //
            var setupVariables = new SetupVariables
            {
                SetupAction = SetupActions.Update,
                ComponentId = Utils.GetStringSetupParameter(args, "ComponentId"),
                IISVersion  = Global.IISVersion,
            };

            // Load setup variables from app.config
            AppConfig.LoadComponentSettings(setupVariables);
            //
            InstallerForm form = new InstallerForm();

            form.Wizard.SetupVariables = setupVariables;
            Wizard wizard = form.Wizard;

            // Initialize setup variables with the data received from update procedure
            wizard.SetupVariables.BaseDirectory   = Utils.GetStringSetupParameter(args, "BaseDirectory");
            wizard.SetupVariables.UpdateVersion   = Utils.GetStringSetupParameter(args, "UpdateVersion");
            wizard.SetupVariables.InstallerFolder = Utils.GetStringSetupParameter(args, "InstallerFolder");
            wizard.SetupVariables.Installer       = Utils.GetStringSetupParameter(args, "Installer");
            wizard.SetupVariables.InstallerType   = Utils.GetStringSetupParameter(args, "InstallerType");
            wizard.SetupVariables.InstallerPath   = Utils.GetStringSetupParameter(args, "InstallerPath");

            #region Support for multiple versions to upgrade from
            // Find out whether the version(s) are supported in that upgrade
            var upgradeSupported = versionsToUpgrade.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                                   .Any(x => { return(VersionEquals(wizard.SetupVariables.Version, x.Trim())); });
            //
            if (upgradeSupported == false)
            {
                Log.WriteInfo(
                    String.Format("Could not find a suitable version to upgrade. Current version: {0}; Versions supported: {1};", wizard.SetupVariables.Version, versionsToUpgrade));
                //
                MessageBox.Show(
                    "Your current software version either is not supported or could not be upgraded at this time. Please send log file from the installer to the software vendor for further research on the issue.", "Setup Wizard", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                //
                return(DialogResult.Cancel);
            }
            #endregion

            //
            IntroductionPage     introPage = new IntroductionPage();
            LicenseAgreementPage licPage   = new LicenseAgreementPage();
            ExpressInstallPage   page2     = new ExpressInstallPage();
            //create install currentScenario
            InstallAction action = new InstallAction(ActionTypes.StopApplicationPool);
            action.Description = "Stopping IIS Application Pool...";
            page2.Actions.Add(action);

            action             = new InstallAction(ActionTypes.Backup);
            action.Description = "Backing up...";
            page2.Actions.Add(action);

            action             = new InstallAction(ActionTypes.DeleteFiles);
            action.Description = "Deleting files...";
            action.Path        = "setup\\delete.txt";
            page2.Actions.Add(action);

            action             = new InstallAction(ActionTypes.CopyFiles);
            action.Description = "Copying files...";
            page2.Actions.Add(action);

            if (versionSpecificAction != null)
            {
                page2.Actions.Add(versionSpecificAction);
            }

            if (updateSql)
            {
                action             = new InstallAction(ActionTypes.ExecuteSql);
                action.Description = "Updating database...";
                action.Path        = "setup\\update_db.sql";
                page2.Actions.Add(action);
            }

            action             = new InstallAction(ActionTypes.UpdateConfig);
            action.Description = "Updating system configuration...";
            page2.Actions.Add(action);

            action             = new InstallAction(ActionTypes.StartApplicationPool);
            action.Description = "Starting IIS Application Pool...";
            page2.Actions.Add(action);

            FinishPage page3 = new FinishPage();
            wizard.Controls.AddRange(new Control[] { introPage, licPage, page2, page3 });
            wizard.LinkPages();
            wizard.SelectedPage = introPage;

            //show wizard
            IWin32Window owner = args["ParentForm"] as IWin32Window;
            return(form.ShowModal(owner));
        }