// Registry: read all internal void ReadConnections() { try { _connBuilders.Clear(); // open registry subkey var key = Registry.CurrentUser.OpenSubKey(REGISTRY_CONNSTRINGS); // create Registry subkey if (key != null && key.ValueCount > 0) { // read registry values foreach (var name in key.GetValueNames()) { var value = key.GetValue(name); if (value != null && value is System.String && !String.IsNullOrWhiteSpace((string)value)) { try { var connString = ConnectionEncryption.DecryptAes((string)value); _connBuilders.Add(new SqlConnectionStringBuilder(connString)); } // catch exception if value is not a conn string catch { } } } } else { Registry.CurrentUser.CreateSubKey(REGISTRY_CONNSTRINGS); } } catch { } }
// read QueryTalkBase connection internal SqlConnectionStringBuilder GetQueryTalkBaseConnection() { try { var root = ProvideRoot(); // check if (root == null) { return(null); // not likely to happen } var queryTalkBaseConnection = (string)root.GetValue(REGISTRY_QueryTalkBaseConnection); var connString = ConnectionEncryption.DecryptAes(queryTalkBaseConnection); if (!string.IsNullOrEmpty(connString)) { return(new SqlConnectionStringBuilder(connString)); } return(null); } catch { return(null); } }
// write QueryTalkBase connection internal void WriteQueryTalkBaseConnection(string queryTalkBaseConnection) { try { var root = ProvideRoot(); root.SetValue(REGISTRY_QueryTalkBaseConnection, ConnectionEncryption.EncryptAes(queryTalkBaseConnection), RegistryValueKind.String); } catch { } }
// write default connection internal void WriteDefaultConnection(string defaultConnection) { try { var root = ProvideRoot(); root.SetValue(REGISTRY_DefaultConnection, ConnectionEncryption.EncryptAes(defaultConnection), RegistryValueKind.String); } catch { } }
// Registry: save all internal void SyncConnections() { try { // delete all registry subkey Registry.CurrentUser.DeleteSubKeyTree(REGISTRY_CONNSTRINGS, false); // re-create subkey var key = Registry.CurrentUser.CreateSubKey(REGISTRY_CONNSTRINGS); // add values var i = 1; foreach (var connBuilder in _connBuilders) { key.SetValue( String.Format("Item{0}", i++), ConnectionEncryption.EncryptAes(connBuilder.ToString()), RegistryValueKind.String); } } catch { } }