Esempio n. 1
0
 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();
     }
 }
Esempio n. 2
0
        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 Setup()
        {
            _deserializer = new CsvConnectionsDeserializerMremotengFormat();
            var credentialRepositoryList = Substitute.For <ICredentialRepositoryList>();

            _serializer = new CsvConnectionsSerializerMremotengFormat(new SaveFilter(), credentialRepositoryList);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
        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}"));
        }
Esempio n. 8
0
        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));
        }
Esempio n. 9
0
        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));
        }
Esempio n. 10
0
        private void SaveToMremotengFormattedCsv()
        {
            var csvConnectionsSerializer = new CsvConnectionsSerializerMremotengFormat {
                SaveFilter = SaveFilter
            };
            var dataProvider = new FileDataProvider(ConnectionFileName);
            var csvContent   = csvConnectionsSerializer.Serialize(ConnectionTreeModel);

            dataProvider.Save(csvContent);
        }
Esempio n. 11
0
        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));
        }
Esempio n. 12
0
        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()));
        }
Esempio n. 13
0
        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();
            }
        }
Esempio n. 14
0
        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();
            }
        }
Esempio n. 15
0
 private void SaveToMremotengFormattedCsv()
 {
     var csvConnectionsSerializer = new CsvConnectionsSerializerMremotengFormat { SaveFilter = SaveFilter };
     var dataProvider = new FileDataProvider(ConnectionFileName);
     var csvContent = csvConnectionsSerializer.Serialize(ConnectionTreeModel);
     dataProvider.Save(csvContent);
 }
Esempio n. 16
0
        public void CantPassNullToSerializeConnectionInfo()
        {
            var serializer = new CsvConnectionsSerializerMremotengFormat(new SaveFilter(), _credentialRepositoryList);

            Assert.Throws <ArgumentNullException>(() => serializer.Serialize((ConnectionInfo)null));
        }