private void addConnectionStringButton_Click(object sender, EventArgs e) { if (this.ValidateAddConnectionForm()) { if (cbConnection.SelectedItem is LastDirectConnectionString) { if ( !connectionStringsListBox.Items.OfType <LastDirectConnectionString>() .Any(x => x.Equals(cbConnection.SelectedItem))) { connectionStringsListBox.Items.Add(cbConnection.SelectedItem); UpdateAddConnectionButtonState(); } } else if (cbConnection.SelectedItem is LastDirectConnectionStringGroup) { LastDirectConnectionStringGroup connectionGroup = cbConnection.SelectedItem as LastDirectConnectionStringGroup; connectionStringsListBox.Items.Clear(); connectionStringsListBox.Items.AddRange(connectionGroup.ConnectionStrings.ToArray()); UpdateAddConnectionButtonState(connectionGroup.GroupName); } } }
/// <summary> /// Returns true if ldcGroup is last selected element in the combobox /// </summary> /// private bool IsConnStrGroupWasSelected(LastDirectConnectionStringGroup ldcGroup) { List <string> singleConnNames = Program.Model.Settings.LastDirectConnectionStrings.Select(x => x.Name).ToList(); string[] groupNameElements = ldcGroup.GroupName.Split(','); // Group name consists from names of single connections for (int i = 0; i < groupNameElements.Length; i++) { if (i > singleConnNames.Count - 1) { return(false); } if (singleConnNames.ElementAt(i) != groupNameElements[i]) { return(false); } } return(true); }
private bool ValidateAddConnectionForm() { bool result = true; LastDirectConnectionString connectionString = this.cbConnection.SelectedItem as LastDirectConnectionString; LastDirectConnectionStringGroup connectionStringGroup = this.cbConnection.SelectedItem as LastDirectConnectionStringGroup; if ((connectionString == null || string.IsNullOrEmpty(connectionString.ConnectionString)) && (connectionStringGroup == null || connectionStringGroup.ConnectionStrings == null)) { this.errorProvider.SetError(this.cbConnection, this.GetLocalizedText("SelectServerError")); result = false; } else { this.errorProvider.SetError(this.cbConnection, string.Empty); } return(result); }
/// <summary> /// The bt ok_ click. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The e. /// </param> private void BtOkClick(object sender, EventArgs e) { if (!this.ValidateForm()) { return; } SettingsInfo settingsCopy = Program.Model.Settings.GetCopy(); List<LastDirectConnectionString> connectionStrings = this.connectionStringsListBox.Items.OfType<LastDirectConnectionString>() .ToList(); foreach (LastDirectConnectionString connectionString in connectionStrings) { if (connectionString != null && !settingsCopy.LastDirectConnectionStringsItems.Any( x => x.ConnectionString == connectionString.ConnectionString && x.IsODBC == connectionString.IsODBC ) ) { settingsCopy.LastDirectConnectionStringsItems.Add(connectionString); } } LastDirectConnectionStringGroup newGroup = new LastDirectConnectionStringGroup() { ConnectionStrings = connectionStrings, GroupName = ConnectionGroupName }; // check if the group does not exist if (!settingsCopy.LastDirectConnectionStringsGroups.Any(x => x.Equals(newGroup))) { bool addNewGroup = true; // check whether the group with the same name // (but with different settings) exists foreach (LastDirectConnectionStringGroup connGroup in settingsCopy.LastDirectConnectionStringsGroups) { if (LastDirectConnectionStringGroup.InSettingsComparer.Equals(newGroup, connGroup)) { // update it with new settings connGroup.ConnectionStrings = newGroup.ConnectionStrings; addNewGroup = false; break; } } if (addNewGroup) { settingsCopy.LastDirectConnectionStringsGroups.Add(newGroup); } } settingsCopy.LastDirectConnectionStrings = connectionStrings; if (rbSelectExistTemplate.Checked) { Template templateFile = this.cbTemplate.SelectedItem as Template; if (templateFile != null) { settingsCopy.LastSelectedTemplateId = templateFile.Id; } } else if (rbOpenTemplateFromFile.Checked) { string templateFile = this.cbPathToFile.Text; if (!String.IsNullOrWhiteSpace(templateFile) && File.Exists(templateFile)) { Program.Model.Settings.LastExternalTemplatesItems.Add(templateFile); settingsCopy.LastSelectedTemplateId = templateFile; } } if (this.cbDataBaseType.SelectedItem != null) { settingsCopy.LastSelectedDataBaseType = (this.cbDataBaseType.SelectedItem as DBType).Name; } if (this.cbModuleType.SelectedItem !=null) { settingsCopy.LastSelectedTemplateType = ((KeyValuePair<string, string>)this.cbModuleType.SelectedItem).Value; } Program.Model.SetSettings(settingsCopy); if (Program.Model.Settings.LastDirectConnectionStrings != null && Program.Model.Settings.LastDirectConnectionStrings.Any( x => !string.IsNullOrEmpty(x.ConnectionString) ) ) { this.SetConnectionProperties( Program.Model.Settings.LastDirectConnectionStrings.Where( x => !string.IsNullOrEmpty(x.ConnectionString) ).ToList() ); } this.DialogResult = DialogResult.OK; }
/// <summary> /// Returns true if ldcGroup is last selected element in the combobox /// </summary> /// private bool IsConnStrGroupWasSelected(LastDirectConnectionStringGroup ldcGroup) { List<string> singleConnNames = Program.Model.Settings.LastDirectConnectionStrings.Select(x => x.Name).ToList(); string[] groupNameElements = ldcGroup.GroupName.Split(','); // Group name consists from names of single connections for (int i = 0; i < groupNameElements.Length;i++) { if (i > singleConnNames.Count - 1) { return false; } if (singleConnNames.ElementAt(i) != groupNameElements[i]) { return false; } } return true; }
/// <summary> /// The bt ok_ click. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The e. /// </param> private void BtOkClick(object sender, EventArgs e) { if (!this.ValidateForm()) { return; } SettingsInfo settingsCopy = Program.Model.Settings.GetCopy(); List <LastDirectConnectionString> connectionStrings = this.connectionStringsListBox.Items.OfType <LastDirectConnectionString>() .ToList(); foreach (LastDirectConnectionString connectionString in connectionStrings) { if (connectionString != null && !settingsCopy.LastDirectConnectionStringsItems.Any( x => x.ConnectionString == connectionString.ConnectionString && x.IsODBC == connectionString.IsODBC ) ) { settingsCopy.LastDirectConnectionStringsItems.Add(connectionString); } } LastDirectConnectionStringGroup newGroup = new LastDirectConnectionStringGroup() { ConnectionStrings = connectionStrings, GroupName = ConnectionGroupName }; // check if the group does not exist if (!settingsCopy.LastDirectConnectionStringsGroups.Any(x => x.Equals(newGroup))) { bool addNewGroup = true; // check whether the group with the same name // (but with different settings) exists foreach (LastDirectConnectionStringGroup connGroup in settingsCopy.LastDirectConnectionStringsGroups) { if (LastDirectConnectionStringGroup.InSettingsComparer.Equals(newGroup, connGroup)) { // update it with new settings connGroup.ConnectionStrings = newGroup.ConnectionStrings; addNewGroup = false; break; } } if (addNewGroup) { settingsCopy.LastDirectConnectionStringsGroups.Add(newGroup); } } settingsCopy.LastDirectConnectionStrings = connectionStrings; if (rbSelectExistTemplate.Checked) { Template templateFile = this.cbTemplate.SelectedItem as Template; if (templateFile != null) { settingsCopy.LastSelectedTemplateId = templateFile.Id; } } else if (rbOpenTemplateFromFile.Checked) { string templateFile = this.cbPathToFile.Text; if (!String.IsNullOrWhiteSpace(templateFile) && File.Exists(templateFile)) { Program.Model.Settings.LastExternalTemplatesItems.Add(templateFile); settingsCopy.LastSelectedTemplateId = templateFile; } } if (this.cbDataBaseType.SelectedItem != null) { settingsCopy.LastSelectedDataBaseType = (this.cbDataBaseType.SelectedItem as DBType).Name; } if (this.cbModuleType.SelectedItem != null) { settingsCopy.LastSelectedTemplateType = ((KeyValuePair <string, string>) this.cbModuleType.SelectedItem).Value; } Program.Model.SetSettings(settingsCopy); if (Program.Model.Settings.LastDirectConnectionStrings != null && Program.Model.Settings.LastDirectConnectionStrings.Any( x => !string.IsNullOrEmpty(x.ConnectionString) ) ) { this.SetConnectionProperties( Program.Model.Settings.LastDirectConnectionStrings.Where( x => !string.IsNullOrEmpty(x.ConnectionString) ).ToList() ); } this.DialogResult = DialogResult.OK; }
private void cbConnectionUpdate() { string selDbType = String.Empty; LastDirectConnectionStringGroup selectedGroup = null; if (cbDataBaseType.SelectedItem != null) { DBType selItem = cbDataBaseType.SelectedItem as DBType; setModuleTypeItems(selItem); selDbType = selItem.Id.ToString(); } cbConnection.Items.Clear(); foreach (LastDirectConnectionString connectionString in Program.Model.Settings.LastDirectConnectionStringsItems.Where(c => c.DataBaseType == selDbType)) { this.cbConnection.Items.Add(connectionString); } foreach (LastDirectConnectionStringGroup connectionStringGroup in Program.Model.Settings.LastDirectConnectionStringsGroups) { LastDirectConnectionString firstGroupConnection = connectionStringGroup.ConnectionStrings.ElementAt(0); if (firstGroupConnection.DataBaseType != selDbType) { continue; } if (connectionStringGroup.ConnectionStrings.Count == 1 && firstGroupConnection.ConnectionString.Equals(connectionStringGroup.GroupName)) { continue; } this.cbConnection.Items.Add(connectionStringGroup); if (IsConnStrGroupWasSelected(connectionStringGroup) && selectedGroup == null) { selectedGroup = connectionStringGroup; } } if (this.cbConnection.Items.Count == 1) { this.cbConnection.SelectedIndex = 0; return; } if (selectedGroup != null) { this.cbConnection.SelectedItem = selectedGroup; } else { LastDirectConnectionString ldcStr = Program.Model.Settings.LastDirectConnectionStrings.FirstOrDefault(); if (ldcStr != null) { foreach (object item in cbConnection.Items) { if (!(item is LastDirectConnectionString)) { continue; } string itemName = (item as LastDirectConnectionString).Name; if (itemName == ldcStr.Name) { cbConnection.SelectedItem = item; } } } } }