/// <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); }
/// <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); }
/// <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); }