private void ValidateSettings(SqlServerInstanceStoreSettings settings)
        {
            if (settings.GetDatabaseConnection == null)
            {
                throw new ArgumentException($"{nameof(settings.GetDatabaseConnection)} cannot be null.");
            }
            if (settings.HubName == null)
            {
                throw new ArgumentException($"{nameof(settings.HubName)} cannot be null.");
            }
            if (settings.SchemaName == null)
            {
                throw new ArgumentException($"{nameof(settings.SchemaName)} cannot be null.");
            }

            //Validate schema and hubnames are valid SQL Identifiers
            var sqlIdentifierRegex = new Regex(@"^[\p{L}_][\p{L}\p{N}@$#_]{0,127}$");

            if (sqlIdentifierRegex.IsMatch(settings.SchemaName) == false)
            {
                throw new ArgumentException($"{nameof(settings.SchemaName)} must be a valid SQL Identifier");
            }
            if (sqlIdentifierRegex.IsMatch(settings.HubName) == false)
            {
                throw new ArgumentException($"{nameof(settings.HubName)} must be a valid SQL Identifier");
            }
        }
        /// <summary>
        /// Creates a new SqlServerInstanceStore using the supplied settings
        /// </summary>
        /// <param name="settings">Configuration values for the Instnace Store</param>
        public SqlServerInstanceStore(SqlServerInstanceStoreSettings settings)
        {
            ValidateSettings(settings);

            this.settings = settings;
        }