public void Import(string fileName, ContainerInfo destinationContainer)
        {
            if (fileName == null)
            {
                Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, "Unable to import file. File path is null.");
                return;
            }

            if (!File.Exists(fileName))
            {
                Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, $"Unable to import file. File does not exist. Path: {fileName}");
            }

            var dataProvider = new FileDataProvider(fileName);
            var xmlString    = dataProvider.Load();
            var xmlConnectionsDeserializer = new XmlConnectionsDeserializer();
            var connectionTreeModel        = xmlConnectionsDeserializer.Deserialize(xmlString, true);

            var rootImportContainer = new ContainerInfo {
                Name = Path.GetFileNameWithoutExtension(fileName)
            };

            rootImportContainer.AddChildRange(connectionTreeModel.RootNodes.First().Children.ToArray());
            destinationContainer.AddChild(rootImportContainer);
        }
        public ConnectionTreeModel Load()
        {
            var dataProvider = new FileDataProvider(_connectionFilePath);
            var xmlString    = dataProvider.Load();
            var deserializer = new XmlConnectionsDeserializer(PromptForPassword);

            return(deserializer.Deserialize(xmlString));
        }
 public void Setup(string confCons, string password)
 {
     _xmlConnectionsDeserializer = new XmlConnectionsDeserializer(confCons)
     {
         AuthenticationRequestor = password.ConvertToSecureString
     };
     _connectionTreeModel = _xmlConnectionsDeserializer.Deserialize();
 }
        public void SerializeThenDeserialize()
        {
            var originalModel     = SetupConnectionTreeModel();
            var serializedContent = _serializer.Serialize(originalModel);

            _deserializer = new XmlConnectionsDeserializer(serializedContent);
            var deserializedModel = _deserializer.Deserialize();
            var nodeNamesFromDeserializedModel = deserializedModel.GetRecursiveChildList().Select(node => node.Name);
            var nodeNamesFromOriginalModel     = originalModel.GetRecursiveChildList().Select(node => node.Name);

            Assert.That(nodeNamesFromDeserializedModel, Is.EquivalentTo(nodeNamesFromOriginalModel));
        }
        public void Setup()
        {
            _originalModel = SetupConnectionTreeModel();
            var cryptoProvider = _cryptoFactory.Build();
            var nodeSerializer = new XmlConnectionNodeSerializer27(
                cryptoProvider,
                _originalModel.RootNodes.OfType <RootNodeInfo>().First().PasswordString.ConvertToSecureString(),
                new SaveFilter());

            _serializer   = new XmlConnectionsSerializer(cryptoProvider, nodeSerializer);
            _deserializer = new XmlConnectionsDeserializer();
        }
        public void SerializeAndDeserializePropertiesWithInternationalCharacters()
        {
            var originalConnectionInfo = new ConnectionInfo {
                Name = "con1", Password = "******"
            };
            var serializedContent = _serializer.Serialize(originalConnectionInfo);

            _deserializer = new XmlConnectionsDeserializer(serializedContent);
            var deserializedModel          = _deserializer.Deserialize();
            var deserializedConnectionInfo = deserializedModel.GetRecursiveChildList().First(node => node.Name == originalConnectionInfo.Name);

            Assert.That(deserializedConnectionInfo.Password, Is.EqualTo(originalConnectionInfo.Password));
        }
Esempio n. 7
0
        public void Import(string fileName, ContainerInfo destinationContainer)
        {
            var dataProvider = new FileDataProvider(fileName);
            var xmlString    = dataProvider.Load();
            var xmlConnectionsDeserializer = new XmlConnectionsDeserializer(xmlString);
            var connectionTreeModel        = xmlConnectionsDeserializer.Deserialize(true);

            var rootImportContainer = new ContainerInfo {
                Name = Path.GetFileNameWithoutExtension(fileName)
            };

            rootImportContainer.Children.AddRange(connectionTreeModel.RootNodes.First().Children);
            destinationContainer.AddChild(rootImportContainer);
        }
        public void SerializeAndDeserializeWithCustomKdfIterationsValue()
        {
            var cryptoProvider = new CryptographyProviderFactory().CreateAeadCryptographyProvider(BlockCipherEngines.AES, BlockCipherModes.GCM);

            cryptoProvider.KeyDerivationIterations = 5000;
            _serializer = new XmlConnectionsSerializer(cryptoProvider);
            var originalModel     = SetupConnectionTreeModel();
            var serializedContent = _serializer.Serialize(originalModel);

            _deserializer = new XmlConnectionsDeserializer(serializedContent);
            var deserializedModel = _deserializer.Deserialize();
            var nodeNamesFromDeserializedModel = deserializedModel.GetRecursiveChildList().Select(node => node.Name);
            var nodeNamesFromOriginalModel     = originalModel.GetRecursiveChildList().Select(node => node.Name);

            Assert.That(nodeNamesFromDeserializedModel, Is.EquivalentTo(nodeNamesFromOriginalModel));
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
 public void Teardown()
 {
     _xmlConnectionsDeserializer = null;
     _connectionTreeModel        = null;
 }
Esempio n. 11
0
 public void Setup(string confCons, string password)
 {
     _xmlConnectionsDeserializer = new XmlConnectionsDeserializer(confCons, password.ConvertToSecureString);
     _connectionTreeModel        = _xmlConnectionsDeserializer.Deserialize();
 }
 public void Teardown()
 {
     _serializer   = null;
     _deserializer = null;
 }
Esempio n. 13
0
 public void Setup()
 {
     _xmlConnectionsDeserializer = new XmlConnectionsDeserializer(Resources.TestConfCons);
     _connectionTreeModel        = _xmlConnectionsDeserializer.Deserialize();
 }