コード例 #1
0
        private void btn_file_generate_Click(object sender, EventArgs e)
        {
            try
            {
                // Stores list of organizations that should be included in the
                // HTML report file
                List <string> organizations = new List <string>();

                foreach (ListViewItem item in this.lv_file_organizations.CheckedItems)
                {
                    organizations.Add(item.SubItems[1].Text);
                }

                // Stores report file settings
                FileInfoSettings settings = new FileInfoSettings()
                {
                    Organizations              = organizations,
                    ProgressBarMaxStep         = TreeviewHelper.CountCheckNodes(this.tv_file_settings),
                    UseADGroupMembership       = this.tv_file_settings.Nodes.Find("tvnAdSecurityGroups", true)[0].Checked,
                    UseCrmDataPlugins          = this.tv_file_settings.Nodes.Find("tvnCrmDataPlugins", true)[0].Checked,
                    UseCrmDataUsers            = this.tv_file_settings.Nodes.Find("tvnCrmDataUsers", true)[0].Checked,
                    UseCrmInstalledFiles       = this.tv_file_settings.Nodes.Find("tvnCrmInstalledFiles", true)[0].Checked,
                    UseCrmLanguagePacks        = this.tv_file_settings.Nodes.Find("tvnCrmLanguagePacks", true)[0].Checked,
                    UseCrmRegistryKeys         = this.tv_file_settings.Nodes.Find("tvnCrmRegistryKeys", true)[0].Checked,
                    UseCrmServices             = this.tv_file_settings.Nodes.Find("tvnCrmWindowsServices", true)[0].Checked,
                    UseCrmGacFiles             = this.tv_file_settings.Nodes.Find("tvnCrmGacFiles", true)[0].Checked,
                    UseGeneralBootIni          = this.tv_file_settings.Nodes.Find("tvnServerBootIni", true)[0].Checked,
                    UseGeneralEnvVariables     = this.tv_file_settings.Nodes.Find("tvnServerEnvironment", true)[0].Checked,
                    UseGeneralFramework        = this.tv_file_settings.Nodes.Find("tvnServerFramework", true)[0].Checked,
                    UseGeneralIPConfig         = this.tv_file_settings.Nodes.Find("tvnServerIp", true)[0].Checked,
                    UseGeneralSystemInfo       = this.tv_file_settings.Nodes.Find("tvnServerSystem", true)[0].Checked,
                    UseGeneralTcpIp            = this.tv_file_settings.Nodes.Find("tvnServerTcpIp", true)[0].Checked,
                    UseIisAppPools             = this.tv_file_settings.Nodes.Find("tvnIisAppPools", true)[0].Checked,
                    UseIisBindings             = this.tv_file_settings.Nodes.Find("tvnIisBindings", true)[0].Checked,
                    UseSqlBuildVersion         = this.tv_file_settings.Nodes.Find("tvnSqlBuildVersion", true)[0].Checked,
                    UseSqlConfigSettings       = this.tv_file_settings.Nodes.Find("tvnSqlConfigurationSettings", true)[0].Checked,
                    UseSqlDeploymentProp       = this.tv_file_settings.Nodes.Find("tvnSqlDeploymentProperties", true)[0].Checked,
                    UseSqlOrganization         = this.tv_file_settings.Nodes.Find("tvnSqlOrganization", true)[0].Checked,
                    UseSqlServer               = this.tv_file_settings.Nodes.Find("tvnSqlServer", true)[0].Checked,
                    UseSqlSqlServerInformation = this.tv_file_settings.Nodes.Find("tvnSqlServer", true)[0].Checked
                };

                // Deactivate controls during file generation
                this.gb_file_organizations.Enabled = false;
                this.gb_file_settings.Enabled      = false;
                this.btn_file_generate.Enabled     = false;
                this.Cursor = Cursors.WaitCursor;

                // Launches report generation
                BackgroundWorker worker = new BackgroundWorker();
                worker.RunWorkerCompleted   += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
                worker.ProgressChanged      += new ProgressChangedEventHandler(worker_ProgressChanged);
                worker.DoWork               += new DoWorkEventHandler(worker_DoWork);
                worker.WorkerReportsProgress = true;
                worker.RunWorkerAsync(settings);
            }
            catch (Exception error)
            {
                MessageBox.Show(this,
                                "An error occured while initializing report generation: " + error.ToString(),
                                "Error",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }