public ConnectionTreeModel Load() { var connector = DatabaseConnectorFactory.SqlDatabaseConnectorFromSettings(); var dataProvider = new SqlDataProvider(connector); var metaDataRetriever = new SqlDatabaseMetaDataRetriever(); var databaseVersionVerifier = new SqlDatabaseVersionVerifier(connector); var cryptoProvider = new LegacyRijndaelCryptographyProvider(); var metaData = metaDataRetriever.GetDatabaseMetaData(connector) ?? HandleFirstRun(metaDataRetriever, connector); var decryptionKey = GetDecryptionKey(metaData); if (!decryptionKey.Any()) { throw new Exception("Could not load SQL connections"); } databaseVersionVerifier.VerifyDatabaseVersion(metaData.ConfVersion); var dataTable = dataProvider.Load(); var deserializer = new DataTableDeserializer(cryptoProvider, decryptionKey.First()); var connectionTree = deserializer.Deserialize(dataTable); ApplyLocalConnectionProperties(connectionTree.RootNodes.First(i => i is RootNodeInfo)); return(connectionTree); }
public void WeCanDeserializeASingleEntry() { var dataTable = CreateDataTable(new ConnectionInfo()); _deserializer = new DataTableDeserializer(); var output = _deserializer.Deserialize(dataTable); Assert.That(output.GetRecursiveChildList().Count(), Is.EqualTo(1)); }
public void WeCanDeserializeATree() { var model = CreateConnectionTreeModel(); var dataTable = CreateDataTable(model.RootNodes[0]); _deserializer = new DataTableDeserializer(); var output = _deserializer.Deserialize(dataTable); Assert.That(output.GetRecursiveChildList().Count(), Is.EqualTo(model.GetRecursiveChildList().Count())); }
public ConnectionTreeModel Load() { var connector = DatabaseConnectorFactory.SqlDatabaseConnectorFromSettings(); var dataProvider = new SqlDataProvider(connector); var databaseVersionVerifier = new SqlDatabaseVersionVerifier(connector); databaseVersionVerifier.VerifyDatabaseVersion(); var dataTable = dataProvider.Load(); var deserializer = new DataTableDeserializer(); return(deserializer.Deserialize(dataTable)); }
public ConnectionTreeModel LoadConnections(bool import) { IDeserializer deserializer; if (UseDatabase) { var connector = new SqlDatabaseConnector(); var dataProvider = new SqlDataProvider(connector); var dataTable = dataProvider.Load(); deserializer = new DataTableDeserializer(dataTable); } else { var dataProvider = new FileDataProvider(ConnectionFileName); var xmlString = dataProvider.Load(); deserializer = new XmlConnectionsDeserializer(xmlString) { AuthenticationRequestor = PromptForPassword }; } var connectionTreeModel = deserializer.Deserialize(); if (connectionTreeModel != null) { frmMain.Default.ConnectionsFileName = ConnectionFileName; } else { connectionTreeModel = new ConnectionTreeModel(); } if (import) { return(connectionTreeModel); } PuttySessionsManager.Instance.AddSessions(); connectionTreeModel.RootNodes.AddRange(PuttySessionsManager.Instance.RootPuttySessionsNodes); return(connectionTreeModel); }