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); } }