public AppSettingsDecoratorBuilder(
     [NotNull] AppSettingsBuilder appSettingsBuilder,
     [NotNull] IKeyValueConfigurationDecorator decorator)
 {
     AppSettingsBuilder = appSettingsBuilder ?? throw new ArgumentNullException(nameof(appSettingsBuilder));
     Decorator          = decorator ?? throw new ArgumentNullException(nameof(decorator));
 }
 public AppSettingsDecoratorBuilder(
     [NotNull] AppSettingsDecoratorBuilder builder,
     [NotNull] IKeyValueConfigurationDecorator decorator)
 {
     Decorator          = decorator ?? throw new ArgumentNullException(nameof(decorator));
     Previous           = builder ?? throw new ArgumentNullException(nameof(builder));
     AppSettingsBuilder = Previous.AppSettingsBuilder;
 }
        public static AppSettingsDecoratorBuilder DecorateWith(
            [NotNull] this AppSettingsDecoratorBuilder builder,
            [NotNull] IKeyValueConfigurationDecorator decorator)
        {
            if (builder is null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (decorator is null)
            {
                throw new ArgumentNullException(nameof(decorator));
            }

            return(new AppSettingsDecoratorBuilder(builder, decorator));
        }