예제 #1
0
        /// <summary>
        /// Check if the database is initialized.  With internal Sqlite databases, this will always return true, because the constructor initializes the database.
        /// </summary>
        /// <returns>True.</returns>
        public override bool IsInitialized()
        {
            DbExpression e1 = new DbExpression(
                _ORM.GetColumnName <DedupeConfig>(nameof(DedupeConfig.Key)),
                DbOperators.Equals,
                "min_chunk_size");

            DbExpression e2 = new DbExpression(
                _ORM.GetColumnName <DedupeConfig>(nameof(DedupeConfig.Key)),
                DbOperators.Equals,
                "max_chunk_size");

            DbExpression e3 = new DbExpression(
                _ORM.GetColumnName <DedupeConfig>(nameof(DedupeConfig.Key)),
                DbOperators.Equals,
                "shift_count");

            DbExpression e4 = new DbExpression(
                _ORM.GetColumnName <DedupeConfig>(nameof(DedupeConfig.Key)),
                DbOperators.Equals,
                "boundary_check_bytes");

            DedupeConfig dc1 = _ORM.SelectFirst <DedupeConfig>(e1);
            DedupeConfig dc2 = _ORM.SelectFirst <DedupeConfig>(e2);
            DedupeConfig dc3 = _ORM.SelectFirst <DedupeConfig>(e3);
            DedupeConfig dc4 = _ORM.SelectFirst <DedupeConfig>(e4);

            if (dc1 != null && dc2 != null && dc3 != null && dc4 != null)
            {
                return(true);
            }
            return(false);
        }
예제 #2
0
        /// <summary>
        /// Add a configuration key-value pair.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="val">The value.</param>
        public override void AddConfigValue(string key, string val)
        {
            if (String.IsNullOrEmpty(key))
            {
                throw new ArgumentNullException(nameof(key));
            }
            if (String.IsNullOrEmpty(val))
            {
                throw new ArgumentNullException(nameof(val));
            }

            key = DedupeCommon.SanitizeString(key);
            val = DedupeCommon.SanitizeString(val);

            DbExpression e = new DbExpression(
                _ORM.GetColumnName <DedupeConfig>(nameof(DedupeConfig.Key)),
                DbOperators.Equals,
                key);

            DedupeConfig config = _ORM.SelectFirst <DedupeConfig>(e);

            if (config != null)
            {
                _ORM.Delete <DedupeConfig>(config);
            }

            config = new DedupeConfig(key, val);
            config = _ORM.Insert <DedupeConfig>(config);
        }
예제 #3
0
        /// <summary>
        /// Retrieve a configuration value.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <returns>Value.</returns>
        public override string GetConfigValue(string key)
        {
            if (String.IsNullOrEmpty(key))
            {
                throw new ArgumentNullException(nameof(key));
            }

            key = DedupeCommon.SanitizeString(key);

            DbExpression e = new DbExpression(
                _ORM.GetColumnName <DedupeConfig>(nameof(DedupeConfig.Key)),
                DbOperators.Equals,
                key);

            DedupeConfig config = _ORM.SelectFirst <DedupeConfig>(e);

            if (config == null)
            {
                return(null);
            }
            return(config.Value);
        }