private static void SaveExportFile(string fileName, ConnectionsSaver.Format saveFormat, SaveFilter saveFilter, ConnectionInfo exportTarget) { try { ISerializer<string> serializer; switch (saveFormat) { case ConnectionsSaver.Format.mRXML: var factory = new CryptographyProviderFactory(); var cryptographyProvider = factory.CreateAeadCryptographyProvider(mRemoteNG.Settings.Default.EncryptionEngine, mRemoteNG.Settings.Default.EncryptionBlockCipherMode); cryptographyProvider.KeyDerivationIterations = Settings.Default.EncryptionKeyDerivationIterations; serializer = new XmlConnectionsSerializer(cryptographyProvider); ((XmlConnectionsSerializer) serializer).SaveFilter = saveFilter; break; case ConnectionsSaver.Format.mRCSV: serializer = new CsvConnectionsSerializerMremotengFormat(); ((CsvConnectionsSerializerMremotengFormat)serializer).SaveFilter = saveFilter; break; default: throw new ArgumentOutOfRangeException(nameof(saveFormat), saveFormat, null); } var serializedData = serializer.Serialize(exportTarget); var fileDataProvider = new FileDataProvider(fileName); fileDataProvider.Save(serializedData); } catch (Exception ex) { Runtime.MessageCollector.AddExceptionStackTrace($"Export.SaveExportFile(\"{fileName}\") failed.", ex); } finally { Runtime.RemoteConnectionsSyncronizer?.Enable(); } }
public RemoteConnectionsSyncronizer(IConnectionsUpdateChecker updateChecker) { _updateChecker = updateChecker; _updateTimer = new Timer(3000); _connectionsLoader = new ConnectionsLoader { UseDatabase = mRemoteNG.Settings.Default.UseSQLServer }; _connectionsSaver = new ConnectionsSaver { SaveFormat = ConnectionsSaver.Format.SQL }; SetEventListeners(); }
public ExportFormat(ConnectionsSaver.Format format) { Format = format; }
public static void SaveConnectionsAs() { var connectionsSave = new ConnectionsSaver(); try { RemoteConnectionsSyncronizer?.Disable(); using (var saveFileDialog = new SaveFileDialog()) { saveFileDialog.CheckPathExists = true; saveFileDialog.InitialDirectory = ConnectionsFileInfo.DefaultConnectionsPath; saveFileDialog.FileName = ConnectionsFileInfo.DefaultConnectionsFile; saveFileDialog.OverwritePrompt = true; var fileTypes = new List<string>(); fileTypes.AddRange(new[] { Language.strFiltermRemoteXML, "*.xml" }); fileTypes.AddRange(new[] { Language.strFilterAll, "*.*" }); saveFileDialog.Filter = string.Join("|", fileTypes.ToArray()); if (saveFileDialog.ShowDialog(frmMain.Default) != DialogResult.OK) return; connectionsSave.SaveFormat = ConnectionsSaver.Format.mRXML; connectionsSave.ConnectionFileName = saveFileDialog.FileName; connectionsSave.Export = false; connectionsSave.SaveFilter = new SaveFilter(); connectionsSave.ConnectionTreeModel = ConnectionTreeModel; connectionsSave.SaveConnections(); if (saveFileDialog.FileName == GetDefaultStartupConnectionFileName()) { Settings.Default.LoadConsFromCustomLocation = false; } else { Settings.Default.LoadConsFromCustomLocation = true; Settings.Default.CustomConsPath = saveFileDialog.FileName; } } } catch (Exception ex) { MessageCollector.AddExceptionMessage(string.Format(Language.strConnectionsFileCouldNotSaveAs, connectionsSave.ConnectionFileName), ex); } finally { RemoteConnectionsSyncronizer?.Enable(); } }
public static void SaveConnections() { if (ConnectionTreeModel == null) return; if (!IsConnectionsFileLoaded) return; try { RemoteConnectionsSyncronizer?.Disable(); var connectionsSaver = new ConnectionsSaver(); if (!Settings.Default.UseSQLServer) connectionsSaver.ConnectionFileName = GetStartupConnectionFileName(); connectionsSaver.Export = false; connectionsSaver.SaveFilter = new SaveFilter(); connectionsSaver.ConnectionTreeModel = ConnectionTreeModel; if (Settings.Default.UseSQLServer) { connectionsSaver.SaveFormat = ConnectionsSaver.Format.SQL; connectionsSaver.SQLHost = Convert.ToString(Settings.Default.SQLHost); connectionsSaver.SQLDatabaseName = Convert.ToString(Settings.Default.SQLDatabaseName); connectionsSaver.SQLUsername = Convert.ToString(Settings.Default.SQLUser); var cryptographyProvider = new LegacyRijndaelCryptographyProvider(); connectionsSaver.SQLPassword = cryptographyProvider.Decrypt(Convert.ToString(Settings.Default.SQLPass), EncryptionKey); } connectionsSaver.SaveConnections(); if (Settings.Default.UseSQLServer) LastSqlUpdate = DateTime.Now; } catch (Exception ex) { MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.strConnectionsFileCouldNotBeSaved + Environment.NewLine + ex.Message); } finally { RemoteConnectionsSyncronizer?.Enable(); } }