private void LoadHistorians() { ConfigurationFile configurationFile = ConfigurationFile.Current; CategorizedSettingsElementCollection systemSettings = configurationFile.Settings["systemSettings"]; string targetHistorianIDValue = systemSettings["TargetHistorianID"]?.Value ?? "0"; TableOperations <Historian> historianTable = new TableOperations <Historian>(ImportParams.Connection); Dictionary <int, string> historians = historianTable.QueryHistorians().ToDictionary(historian => historian.ID, historian => historian.Acronym); historians.Add(0, "None"); comboBoxHistorian.DataSource = new BindingSource(historians, null); comboBoxHistorian.ValueMember = "Key"; comboBoxHistorian.DisplayMember = "Value"; void updateSelectedHistorian() { if (!int.TryParse(comboBoxHistorian.SelectedValue.ToString(), out int historianID)) { historianID = -1; } TargetConfigFrame.HistorianID = historianID <= 0 ? null : historianID; systemSettings["TargetHistorianID", true].Update(historianID, "Target historian ID.", false, SettingScope.User); } comboBoxHistorian.SelectedValueChanged += (_, _) => updateSelectedHistorian(); if (!int.TryParse(targetHistorianIDValue, out int targetHistorianID) || !historians.ContainsKey(targetHistorianID)) { targetHistorianID = -1; } if (targetHistorianID == -1) { // Attempt to select an ideal initial target historian if (historians.ContainsValue("PPA")) { targetHistorianID = historians.FirstOrDefault(kvp => string.Equals(kvp.Value, "PPA")).Key; } else if (historians.Count > 1) { targetHistorianID = historians.FirstOrDefault(kvp => kvp.Key > 0 && !string.Equals(kvp.Value, "STAT")).Key; } if (targetHistorianID == -1) { targetHistorianID = 0; } } comboBoxHistorian.SelectedValue = targetHistorianID; updateSelectedHistorian(); }