private void EditConnection() { var connection = ConnectionItems.FirstOrDefault(c => c.ConnectionString == cboConnection.SelectedValue.ToString()); if (connection == null) { MessageBox.Show("There is no connection to edit", "Edit", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } var f = new Connection { ConnectionString = connection.ConnectionString }; var dialogResult = f.ShowDialog(); if (dialogResult == DialogResult.OK) { connection.ConnectionString = f.ConnectionString; // Reload datasource seems to be the easiest way to refresh data ... ConnectionItems = new BindingList <ConnectionItem>(ConnectionItems.OrderBy(c => c.DisplayName).ToList()); SelectedConnectionString = f.ConnectionString; SaveSettings(); LoadTables(); } }
public MainWindow() { InitializeComponent(); ConnectionItems.Add(new ConnectionItem { Name = "Item1", Ping = "150ms" }); ConnectionItems.Add(new ConnectionItem { Name = "Item2", Ping = "122ms" }); }
private void SaveSettings() { var settings = new Settings { ConnectionStrings = ConnectionItems.Select(x => x.ConnectionString).ToList(), SelectedConnection = SelectedConnectionString, SqlView = txtSqlView.Text, SqlProcedure = txtSqlProcedure.Text }; SettingsHandler.Save(settings); }
private void AddConnection() { var f = new Connection(); var dialogResult = f.ShowDialog(); if (dialogResult == DialogResult.OK) { ConnectionItems.Add(new ConnectionItem(f.ConnectionString)); SelectedConnectionString = f.ConnectionString; SaveSettings(); LoadTables(); } }
private void RemoveConnection() { var connection = ConnectionItems.FirstOrDefault(c => c.ConnectionString == cboConnection.SelectedValue.ToString()); if (connection == null) { MessageBox.Show("There is no connection to remove", "Remove", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } ConnectionItems.Remove(connection); SaveSettings(); LoadTables(); }
protected override Task OnReadSettingsAsync(ModuleSettingsReader settings) { try { // set the flag hasSettings = true; // clear existing setting values _moduleSettings.Clear(); if (settings == null) { return(Task.FromResult(0)); } // Settings defined in the Property sheet’s viewmodel. string[] keys = new string[] { "Setting1", "Setting2", "Setting3" }; foreach (string key in keys) { object value = settings.Get(key); if (value != null) { if (_moduleSettings.ContainsKey(key)) { _moduleSettings[key] = value.ToString(); } else { _moduleSettings.Add(key, value.ToString()); } } } if (_moduleSettings["Setting3"] != "") { string len; _moduleSettings.TryGetValue("Setting3", out len); string contentPath = System.IO.Path.Combine(Project.Current.HomeFolderPath, "Data.dat"); string projectPath = Project.Current.HomeFolderPath; using (FileStream fStream = new FileStream(contentPath, FileMode.Open)) { if (fStream.CanRead) { byte[] inBuffer = new byte[int.Parse(len)]; byte[] outBuffer; string pass = ""; fStream.Read(inBuffer, 0, int.Parse(len)); byte[] entropy = new byte[20]; outBuffer = ProtectedData.Unprotect(inBuffer, null, DataProtectionScope.CurrentUser); pass = UnicodeEncoding.ASCII.GetString(outBuffer); string[] conns = pass.TrimStart(';').Split(';'); foreach (string con in conns) { ConnectionItem coni = new QProSapAddIn.ConnectionItem(); string[] cells = con.Split(','); for (int i = 0; i < cells.Length; i++) { switch (i) { case 0: coni.name = cells[i]; break; case 1: coni.server = cells[i]; break; case 2: coni.userid = cells[i]; break; case 3: SecureString ss = new SecureString(); foreach (char cc in cells[i]) { ss.AppendChar(cc); } coni.pass = ss; break; default: break; } } ConnectionItems.Add(coni); } foreach (char cc in pass) { _Hpass.AppendChar(cc); } } } } } catch (Exception ex) { MessageBox.Show("Error in OnReadSettingsAsync: " + ex.Message.ToString(), "Error"); } return(Task.FromResult(0)); }