Beispiel #1
0
        public static DialogResult Setup(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, 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.VirtualDirectory    = AppConfig.GetComponentSettingStringValue(componentId, "VirtualDirectory");
            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            page1 = new WebPage();
            UrlPage            page2 = new UrlPage();
            ExpressInstallPage page3 = new ExpressInstallPage();
            //create install actions
            InstallAction action = new InstallAction(ActionTypes.UpdateWebSite);

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

            action             = new InstallAction(ActionTypes.UpdateEnterpriseServerUrl);
            action.Description = "Updating site settings...";
            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["ParentForm"] as IWin32Window;

            return(form.ShowModal(owner));
        }
Beispiel #2
0
        internal List <InstallAction> GetUninstallActions(string componentId)
        {
            var           list   = new List <InstallAction>();
            InstallAction action = null;

            //windows service
            string serviceName   = AppConfig.GetComponentSettingStringValue(componentId, "ServiceName");
            string serviceFile   = AppConfig.GetComponentSettingStringValue(componentId, "ServiceFile");
            string installFolder = AppConfig.GetComponentSettingStringValue(componentId, "InstallFolder");

            if (!string.IsNullOrEmpty(serviceName) && !string.IsNullOrEmpty(serviceFile))
            {
                action             = new InstallAction(ActionTypes.UnregisterWindowsService);
                action.Path        = Path.Combine(installFolder, serviceFile);
                action.Name        = serviceName;
                action.Description = "Removing Windows service...";
                action.Log         = string.Format("- Remove {0} Windows service", serviceName);
                list.Add(action);
            }

            if (ServiceController.GetServices().Any(s => s.DisplayName.Equals(Global.Parameters.SchedulerServiceName, StringComparison.CurrentCultureIgnoreCase)))
            {
                action = new InstallAction(ActionTypes.UnregisterWindowsService)
                {
                    Path = Path.Combine(installFolder, "bin", Global.Parameters.SchedulerServiceFileName), Name = Global.Parameters.SchedulerServiceName, Description = "Removing Windows service..."
                };
                action.Log = string.Format("- Remove {0} Windows service", action.Name);
                list.Add(action);
            }

            //database
            bool deleteDatabase = AppConfig.GetComponentSettingBooleanValue(componentId, "NewDatabase");

            if (deleteDatabase)
            {
                string connectionString = AppConfig.GetComponentSettingStringValue(componentId, "InstallConnectionString");
                string database         = AppConfig.GetComponentSettingStringValue(componentId, "Database");
                action = new InstallAction(ActionTypes.DeleteDatabase);
                action.ConnectionString = connectionString;
                action.Name             = database;
                action.Description      = "Deleting database...";
                action.Log = string.Format("- Delete {0} database", database);
                list.Add(action);
            }
            //database user
            bool deleteDatabaseUser = AppConfig.GetComponentSettingBooleanValue(componentId, "NewDatabaseUser");

            if (deleteDatabaseUser)
            {
                string connectionString = AppConfig.GetComponentSettingStringValue(componentId, "InstallConnectionString");
                string username         = AppConfig.GetComponentSettingStringValue(componentId, "DatabaseUser");
                action = new InstallAction(ActionTypes.DeleteDatabaseUser);
                action.ConnectionString = connectionString;
                action.UserName         = username;
                action.Description      = "Deleting database user...";
                action.Log = string.Format("- Delete {0} database user", username);
                list.Add(action);
            }
            //database login (from standalone setup)
            string loginName = AppConfig.GetComponentSettingStringValue(componentId, "DatabaseLogin");

            if (!string.IsNullOrEmpty(loginName))
            {
                string connectionString = AppConfig.GetComponentSettingStringValue(componentId, "InstallConnectionString");
                action = new InstallAction(ActionTypes.DeleteDatabaseLogin);
                action.ConnectionString = connectionString;
                action.UserName         = loginName;
                action.Description      = "Deleting database login...";
                action.Log = string.Format("- Delete {0} database login", loginName);
                list.Add(action);
            }



            //virtual directory
            bool deleteVirtualDirectory = AppConfig.GetComponentSettingBooleanValue(componentId, "NewVirtualDirectory");

            if (deleteVirtualDirectory)
            {
                string virtualDirectory       = AppConfig.GetComponentSettingStringValue(componentId, "VirtualDirectory");
                string virtualDirectorySiteId = AppConfig.GetComponentSettingStringValue(componentId, "WebSiteId");
                action             = new InstallAction(ActionTypes.DeleteVirtualDirectory);
                action.SiteId      = virtualDirectorySiteId;
                action.Name        = virtualDirectory;
                action.Description = "Deleting virtual directory...";
                action.Log         = string.Format("- Delete {0} virtual directory...", virtualDirectory);
                list.Add(action);
            }

            //web site
            bool deleteWebSite = AppConfig.GetComponentSettingBooleanValue(componentId, "NewWebSite");

            if (deleteWebSite)
            {
                string siteId = AppConfig.GetComponentSettingStringValue(componentId, "WebSiteId");
                action             = new InstallAction(ActionTypes.DeleteWebSite);
                action.SiteId      = siteId;
                action.Description = "Deleting web site...";
                action.Log         = string.Format("- Delete {0} web site", siteId);
                list.Add(action);
            }

            //application pool
            bool deleteAppPool = AppConfig.GetComponentSettingBooleanValue(componentId, "NewApplicationPool");

            if (deleteAppPool)
            {
                string appPoolName = AppConfig.GetComponentSettingStringValue(componentId, "ApplicationPool");
                if (string.IsNullOrEmpty(appPoolName))
                {
                    appPoolName = WebUtils.WEBSITEPANEL_ADMIN_POOL;
                }
                action             = new InstallAction(ActionTypes.DeleteApplicationPool);
                action.Name        = appPoolName;
                action.Description = "Deleting application pool...";
                action.Log         = string.Format("- Delete {0} application pool", appPoolName);
                list.Add(action);
            }

            //user account
            bool deleteUserAccount = AppConfig.GetComponentSettingBooleanValue(componentId, "NewUserAccount");

            if (deleteUserAccount)
            {
                string username = AppConfig.GetComponentSettingStringValue(componentId, "UserAccount");
                string domain   = AppConfig.GetComponentSettingStringValue(componentId, "Domain");
                //membership
                if (Wizard.SetupVariables.UserMembership != null && Wizard.SetupVariables.UserMembership.Length > 0)
                {
                    action             = new InstallAction(ActionTypes.DeleteUserMembership);
                    action.Name        = username;
                    action.Domain      = domain;
                    action.Membership  = Wizard.SetupVariables.UserMembership;
                    action.Description = "Removing user account membership...";
                    action.Log         = string.Format("- Remove {0} user account membership", username);
                    list.Add(action);
                }

                action             = new InstallAction(ActionTypes.DeleteUserAccount);
                action.Name        = username;
                action.Domain      = domain;
                action.Description = "Deleting user account...";
                action.Log         = string.Format("- Delete {0} user account", username);
                list.Add(action);
            }

            //directory
            string path = AppConfig.GetComponentSettingStringValue(componentId, "InstallFolder");

            if (!string.IsNullOrEmpty(path))
            {
                action             = new InstallAction(ActionTypes.DeleteDirectory);
                action.Path        = path;
                action.Description = "Deleting application folder...";
                action.Log         = string.Format("- Delete {0} folder", path);
                list.Add(action);
            }

            //config
            action             = new InstallAction(ActionTypes.UpdateConfig);
            action.Key         = componentId;
            action.Description = "Updating configuration settings...";
            action.Log         = "- Update configuration settings";
            list.Add(action);
            return(list);
        }