private void cmbSeqDB_SelectedIndexChanged(object sender, EventArgs e) { if (cmbSeqDB.SelectedIndex == 0) // empty = none = reset { menuStrip1.Enabled = false; btnDeleteDB.Enabled = false; txtDB.Text = txtPath.Text = txtVersions.Text = AppConfigHelper.seqdbConfig.LastDBSelected = string.Empty; lblKipper.Visible = false; lstSampleIDs.Items.Clear(); chkDetailSamples.Enabled = false; lstSampleIDs.Enabled = false; AppConfigHelper.SaveConfig(); } else if (cmbSeqDB.SelectedIndex == 1) // New { BioSeqNewDB frmNewDB = new BioSeqNewDB(); DialogResult rc = frmNewDB.ShowDialog(); if (rc == DialogResult.OK) // then the config has the specs for the new db to select. { Cursor.Current = Cursors.WaitCursor; // If necessary, copy local files to server. string fastaPath = AppConfigHelper.Build_DBInput(); if (IsServiceClass.IsService && !string.IsNullOrEmpty(fastaPath)) { if (fastaPath.StartsWith("[L]") || !fastaPath.StartsWith("[")) { ServiceCallHelper.ResetFastaFolder(AppConfigHelper.LoggedOnUser); string[] folders = Directory.GetDirectories(DirectoryHelper.CleanPath(fastaPath)); foreach (string folder in folders) { string[] files = Directory.GetFiles(folder, "*.fasta", SearchOption.TopDirectoryOnly); foreach (string file in files) { DirectoryHelper.FileCopy("[L]" + file, "[S]" + AppConfigHelper.UserFolder() + "FastaFiles", true); } files = Directory.GetFiles(folder, "*.fna", SearchOption.TopDirectoryOnly); foreach (string file in files) { DirectoryHelper.FileCopy("[L]" + file, "[S]" + AppConfigHelper.UserFolder() + "FastaFiles", true); } files = Directory.GetFiles(folder, "*.fa", SearchOption.TopDirectoryOnly); foreach (string file in files) { DirectoryHelper.FileCopy("[L]" + file, "[S]" + AppConfigHelper.UserFolder() + "FastaFiles", true); } } } } if (!string.IsNullOrEmpty(AppConfigHelper.BuildTreeWildReference())) // This is the standard genome for the new database. { // Wherever it is, store it temporarily in the UserFolder. DirectoryHelper.FileCopy(AppConfigHelper.BuildTreeWildReference(), "[S]" + AppConfigHelper.UserFolder(), true); } /////////// Call Build_DB in SeqDB. try { ServiceCallHelper.Build_DB(AppConfigHelper.LoggedOnUser, AppConfigHelper.JsonConfig()); } catch (Exception ex) { Cursor.Current = Cursors.Default; MessageBox.Show("Error: " + ex.ToString(), "ERROR", MessageBoxButtons.OK); return; } if (AppConfigHelper.LastError.Length > 0) { Cursor.Current = Cursors.Default; MessageBox.Show("Error: " + AppConfigHelper.LastError, "ERROR", MessageBoxButtons.OK); return; } if (string.IsNullOrEmpty(AppConfigHelper.BuildTreeDomesticReference)) { AppConfigHelper.BuildTreeDomesticReference = AppConfigHelper.BuildTreeWildReference(); AppConfigHelper.SaveConfig(); } ServiceCallHelper.LoadConfig(AppConfigHelper.LoggedOnUser); PopulateDBDropdownAndSelect(); Cursor.Current = Cursors.Default; } } else // a database is selected. { Cursor.Current = Cursors.WaitCursor; AppConfigHelper.seqdbConfig.LastDBSelected = cmbSeqDB.SelectedItem.ToString(); AppConfigHelper.SaveConfig(); menuStrip1.Enabled = true; btnDeleteDB.Enabled = true; chkDetailSamples.Enabled = true; lstSampleIDs.Enabled = true; txtVersions.Text = string.Empty; lstSampleIDs.Items.Clear(); SeqDB db = AppConfigHelper.seqdbConfig.seqDBs[AppConfigHelper.seqdbConfig.LastDBSelected]; txtDB.Text = db.DBName; txtPath.Text = db.DBPath; AppConfigHelper.LastError = string.Empty; if (SampleIDsBusyFlag || VersionsBusyFlag) { MessageBox.Show("Version information and sample IDs are being loaded for previous database. Please select " + db.DBName + " again.", "Warning", MessageBoxButtons.OK); return; } // Version information comes from the global config. RefreshVersionInformation(AppConfigHelper.seqdbConfigGlobal.seqDBs[AppConfigHelper.seqdbConfig.LastDBSelected]); // Also get sample IDs into listbox. ReloadSampleIDs(); Cursor.Current = Cursors.Default; if (AppConfigHelper.LastError.Length > 0) { MessageBox.Show("Error: " + AppConfigHelper.LastError, "ERROR", MessageBoxButtons.OK); } } }