コード例 #1
0
        public void Save(ConnectionTreeModel connectionTreeModel)
        {
            if (SqlUserIsReadOnly())
            {
                Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "Trying to save connection tree but the SQL read only checkbox is checked, aborting!");
                return;
            }


            using (var sqlConnector = DatabaseConnectorFactory.SqlDatabaseConnectorFromSettings())
            {
                sqlConnector.Connect();
                var databaseVersionVerifier = new SqlDatabaseVersionVerifier(sqlConnector);

                if (!databaseVersionVerifier.VerifyDatabaseVersion())
                {
                    Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.strErrorConnectionListSaveFailed);
                    return;
                }

                var rootTreeNode = connectionTreeModel.RootNodes.OfType <RootNodeInfo>().First();

                UpdateRootNodeTable(rootTreeNode, sqlConnector);
                UpdateConnectionsTable(rootTreeNode, sqlConnector);
                UpdateUpdatesTable(sqlConnector);
            }
        }
コード例 #2
0
 public CreateInfoTablesStep(IKernel kernel,
                             IDatabaseConnectorConfiguration configuration,
                             DatabaseConnectorFactory factory) : base(kernel)
 {
     _configuration = configuration;
     _factory       = factory;
 }
 public SqlConnectionsUpdateChecker()
 {
     _sqlConnector           = DatabaseConnectorFactory.SqlDatabaseConnectorFromSettings();
     _sqlQuery               = new SqlCommand("SELECT * FROM tblUpdate", _sqlConnector.SqlConnection);
     _lastUpdateTime         = default(DateTime);
     _lastDatabaseUpdateTime = default(DateTime);
 }
コード例 #4
0
 public DropDatabaseStep(IKernel kernel,
                         IDatabaseConnectorConfiguration configuration,
                         DatabaseConnectorFactory factory) : base(kernel)
 {
     _configuration = configuration;
     _factory       = factory;
 }
コード例 #5
0
        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);
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: radtek/DBScout
        static void Main(string[] args)
        {
            try
            {
                var dbSettings           = new DatabaseSettings(args);
                var exportSettings       = new ExportSettings(args);
                var connectorDefinitions = new ConnectorSettings(args);

                var dbConnector = DatabaseConnectorFactory.CreateDatabaseConnector(connectorDefinitions.DbConnectorClassName, dbSettings.Provider, dbSettings.Username, dbSettings.Password);
                if (null == dbConnector)
                {
                    throw new Exception(string.Format("Couldn't create instance of \"{0}\"", connectorDefinitions.DbConnectorClassName));
                }
                dbConnector.Init(dbSettings.GetInitializationParameters());

                var dbInfoProcessor = DbInfoProcessorFactory.CreateDbInfoProcessor(connectorDefinitions.DbInfoProcessorClassName);
                if (null == dbInfoProcessor)
                {
                    throw new Exception(string.Format("Couldn't create instance of \"{0}\"", connectorDefinitions.DbInfoProcessorClassName));
                }

                var controller = new MainController();
                var dbInfos    = controller.AcquireDatabaseSchemaInformation(dbConnector);
                controller.ProcessDatabaseSchema(dbInfos, dbInfoProcessor);
            }
            catch (Exception e)
            {
                System.Console.Error.WriteLine(e.Message);
            }
        }
コード例 #7
0
        static void Startup()
        {
            Console.WriteLine("NHibernate with .NET Core - demo!");
            Console.WriteLine();
            Console.WriteLine("-> https://github.com/ThiagoBarradas/nhibernate-netcore-demo");
            Console.WriteLine();

            var sessionFactory = DatabaseConnectorFactory.GetInstance(DatabaseType, ConnectionString);

            PersonRepository = new PersonRepository(sessionFactory);
        }
コード例 #8
0
        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));
        }
コード例 #9
0
        public void Save(ConnectionTreeModel connectionTreeModel, string propertyNameTrigger = "")
        {
            var rootTreeNode = connectionTreeModel.RootNodes.OfType <RootNodeInfo>().First();

            UpdateLocalConnectionProperties(rootTreeNode);

            if (PropertyIsLocalOnly(propertyNameTrigger))
            {
                Runtime.MessageCollector.AddMessage(MessageClass.DebugMsg,
                                                    $"Property {propertyNameTrigger} is local only. Not saving to database.");
                return;
            }

            if (SqlUserIsReadOnly())
            {
                Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg,
                                                    "Trying to save connection tree but the SQL read only checkbox is checked, aborting!");
                return;
            }

            using (var dbConnector = DatabaseConnectorFactory.DatabaseConnectorFromSettings())
            {
                dbConnector.Connect();
                var databaseVersionVerifier = new SqlDatabaseVersionVerifier(dbConnector);
                var metaDataRetriever       = new SqlDatabaseMetaDataRetriever();
                var metaData = metaDataRetriever.GetDatabaseMetaData(dbConnector);

                if (!databaseVersionVerifier.VerifyDatabaseVersion(metaData.ConfVersion))
                {
                    Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg,
                                                        Language.strErrorConnectionListSaveFailed);
                    return;
                }

                metaDataRetriever.WriteDatabaseMetaData(rootTreeNode, dbConnector);
                UpdateConnectionsTable(rootTreeNode, dbConnector);
                UpdateUpdatesTable(dbConnector);
            }

            Runtime.MessageCollector.AddMessage(MessageClass.DebugMsg, "Saved connections to database");
        }
コード例 #10
0
 public ApplyScriptsStep(IKernel kernel, DatabaseConnectorFactory factory) : base(kernel)
 {
     _factory = factory;
 }
コード例 #11
0
 public DowngradeStep(IKernel kernel, DatabaseConnectorFactory factory) : base(kernel, factory)
 {
     UseRollbackScripts = true;
 }
コード例 #12
0
 public SqlConnectionsUpdateChecker()
 {
     _dbConnector            = DatabaseConnectorFactory.DatabaseConnectorFromSettings();
     _dbQuery                = _dbConnector.DbCommand("SELECT * FROM tblUpdate");
     _lastDatabaseUpdateTime = default(DateTime);
 }