/// <summary>
        ///     Creates new settings provider, using the
        ///     <see cref="PrefixTruncatingKeyFilter" />
        ///     for the path filtering logic
        /// </summary>
        /// <param name="settingsProvider">
        ///     The settings provider.
        /// </param>
        /// <param name="prefix">
        ///     The prefix to look for and then truncate.
        /// </param>
        /// <returns>
        ///     new instance of the settings provider, created by filtering and applying transformations
        /// </returns>
        public static ISettingsProvider FilteredByPrefix([NotNull] this ISettingsProvider settingsProvider, [NotNull] string prefix)
        {
            Enforce.Argument(() => settingsProvider);
            Enforce.ArgumentNotEmpty(() => prefix);

            return(settingsProvider.Filtered(new PrefixTruncatingKeyFilter(prefix)));
        }