private static void SaveExportFile(string fileName, ConnectionsSaver.Format saveFormat, SaveFilter saveFilter, ConnectionInfo exportTarget) { try { ISerializer <string> serializer; switch (saveFormat) { case ConnectionsSaver.Format.mRXML: serializer = new XmlConnectionsSerializer(); ((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 void Save(ConnectionTreeModel connectionTreeModel, string propertyNameTrigger = "") { var csvConnectionsSerializer = new CsvConnectionsSerializerMremotengFormat(_saveFilter, Runtime.CredentialProviderCatalog); var dataProvider = new FileDataProvider(_connectionFileName); var csvContent = csvConnectionsSerializer.Serialize(connectionTreeModel); dataProvider.Save(csvContent); }
public void CanSerializeEmptyConnectionInfo() { var serializer = new CsvConnectionsSerializerMremotengFormat(new SaveFilter(), _credentialRepositoryList); var connectionInfo = new ConnectionInfo(); var csv = serializer.Serialize(connectionInfo); Assert.That(csv, Is.Not.Empty); }
public void CreatesCsv(string valueThatShouldExist) { var serializer = new CsvConnectionsSerializerMremotengFormat(new SaveFilter(), _credentialRepositoryList); var connectionInfo = BuildConnectionInfo(); var csv = serializer.Serialize(connectionInfo); Assert.That(csv, Does.Match(valueThatShouldExist)); }
public void DoesntSerializeTheRootNode() { var serializer = new CsvConnectionsSerializerMremotengFormat(new SaveFilter(), _credentialRepositoryList); var treeModel = new ConnectionTreeModelBuilder().Build(); var csv = serializer.Serialize(treeModel); Assert.That(csv, Does.Not.Match($"{treeModel.RootNodes[0].ConstantID};.*;{TreeNodeType.Root}")); }
public void SerializesNodeId() { var serializer = new CsvConnectionsSerializerMremotengFormat(new SaveFilter(), _credentialRepositoryList); var connectionInfo = BuildConnectionInfo(); var csv = serializer.Serialize(connectionInfo); Assert.That(csv, Does.Match(connectionInfo.ConstantID)); }
public void SerializerRespectsSaveFilterSettings(string valueThatShouldntExist) { var saveFilter = new SaveFilter(true); var serializer = new CsvConnectionsSerializerMremotengFormat(saveFilter, _credentialRepositoryList); var connectionInfo = BuildConnectionInfo(); var csv = serializer.Serialize(connectionInfo); Assert.That(csv, Does.Not.Match(valueThatShouldntExist)); }
private void SaveToMremotengFormattedCsv() { var csvConnectionsSerializer = new CsvConnectionsSerializerMremotengFormat { SaveFilter = SaveFilter }; var dataProvider = new FileDataProvider(ConnectionFileName); var csvContent = csvConnectionsSerializer.Serialize(ConnectionTreeModel); dataProvider.Save(csvContent); }
public void SerializationIncludesRawInheritedValuesIfObjectInheritsFromParentOutsideOfSerializationScope() { var serializer = new CsvConnectionsSerializerMremotengFormat(new SaveFilter(), _credentialRepositoryList); var treeModel = new ConnectionTreeModelBuilder().Build(); var serializationTarget = treeModel.GetRecursiveChildList().First(info => info.Name == "folder3"); var csv = serializer.Serialize(serializationTarget); var lineWithFolder3 = csv.Split(new[] { Environment.NewLine }, StringSplitOptions.None).First(s => s.Contains(serializationTarget.Name)); Assert.That(lineWithFolder3, Does.Contain(serializationTarget.Username)); Assert.That(lineWithFolder3, Does.Contain(serializationTarget.Domain)); Assert.That(lineWithFolder3, Does.Contain(serializationTarget.Password)); }
public void FoldersAreSerialized() { var serializer = new CsvConnectionsSerializerMremotengFormat(new SaveFilter(), _credentialRepositoryList); var container = BuildContainer(); var csv = serializer.Serialize(container); Assert.That(csv, Does.Match(container.Name)); Assert.That(csv, Does.Match(container.Username)); Assert.That(csv, Does.Match(container.Domain)); Assert.That(csv, Does.Match(container.Password)); Assert.That(csv, Does.Contain(TreeNodeType.Container.ToString())); }
private static void SaveExportFile(string fileName, SaveFormat saveFormat, SaveFilter saveFilter, ConnectionInfo exportTarget) { try { ISerializer <ConnectionInfo, string> serializer; switch (saveFormat) { case SaveFormat.mRXML: var cryptographyProvider = new CryptoProviderFactoryFromSettings().Build(); var rootNode = exportTarget.GetRootParent() as RootNodeInfo; var connectionNodeSerializer = new XmlConnectionNodeSerializer27( cryptographyProvider, rootNode?.PasswordString .ConvertToSecureString() ?? new RootNodeInfo(RootNodeType .Connection) .PasswordString .ConvertToSecureString(), saveFilter); serializer = new XmlConnectionsSerializer(cryptographyProvider, connectionNodeSerializer); break; case SaveFormat.mRCSV: serializer = new CsvConnectionsSerializerMremotengFormat(saveFilter, Runtime.CredentialProviderCatalog); 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.ConnectionsService.RemoteConnectionsSyncronizer?.Enable(); } }
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) { Export = true, SaveFilter = saveFilter }; break; case ConnectionsSaver.Format.mRCSV: serializer = new CsvConnectionsSerializerMremotengFormat { 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(); } }
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 void CantPassNullToSerializeConnectionInfo() { var serializer = new CsvConnectionsSerializerMremotengFormat(new SaveFilter(), _credentialRepositoryList); Assert.Throws <ArgumentNullException>(() => serializer.Serialize((ConnectionInfo)null)); }