Esempio n. 1
0
        /// <summary>
        /// Initializes a new Database Writer object using a TabMonConfig.
        /// </summary>
        /// <param name="config">User's TabMon.config file containing the required Db Writer parameters.</param>
        /// <returns>Initialized DataTableDbWriter object.</returns>
        private static DataTableDbWriter LoadDbWriterFromConfig(TabMonConfig config)
        {
            DbDriverType dbDriverType;

            Log.Debug("Loading database configuration..");
            var databaseConfig = config.Database;

            var validDriverType = Enum.TryParse(databaseConfig.Type, true, out dbDriverType);

            if (!validDriverType)
            {
                throw new ConfigurationErrorsException("Invalid database driver type specified!");
            }

            IDbConnectionInfo dbConnInfo = new DbConnectionInfo()
            {
                Server       = databaseConfig.Server.Host,
                Port         = databaseConfig.Server.Port,
                Username     = databaseConfig.User.Login,
                Password     = databaseConfig.User.Password,
                DatabaseName = databaseConfig.Name
            };

            var indexes = new Dictionary <string, bool>();

            foreach (Index index in config.Database.Indexes)
            {
                indexes.Add(index.Column, index.Clustered);
            }

            if (!dbConnInfo.Valid())
            {
                throw new ConfigurationErrorsException("Missing required database connection information!");
            }

            var tableInitializationOptions = new DbTableInitializationOptions()
            {
                CreateTableDynamically     = true,
                UpdateDbTableToMatchSchema = true,
                UpdateSchemaToMatchDbTable = true,
                UpdateIndexes      = databaseConfig.Indexes.Generate,
                IndexesToGenerate  = indexes,
                PurgeData          = databaseConfig.PurgeOldData.Enabled,
                PurgeDataThreshold = databaseConfig.PurgeOldData.ThresholdDays
            };

            Log.Info("Connecting to results database..");
            try
            {
                return(new DataTableDbWriter(dbDriverType, dbConnInfo, tableInitializationOptions));
            }
            catch (Exception ex)
            {
                Log.Fatal("Could not initialize writer: " + ex.Message);
                return(null);
            }
        }
Esempio n. 2
0
 public DataTableDbWriter(DbDriverType driverType, IDbConnectionInfo connectionInfo, DbTableInitializationOptions tableInitializationOptions = default(DbTableInitializationOptions))
 {
     Adapter = new DbAdapter(driverType, connectionInfo);
     this.tableInitializationOptions = tableInitializationOptions;
 }
Esempio n. 3
0
 public DataTableDbWriter(DbDriverType driverType, IDbConnectionInfo connectionInfo, DbTableInitializationOptions tableInitializationOptions = default(DbTableInitializationOptions))
 {
     Adapter = new DbAdapter(driverType, connectionInfo);
     this.tableInitializationOptions = tableInitializationOptions;
 }