diff --git a/src/Fluent.Brighter/ConsumerBuilder.cs b/src/Fluent.Brighter/ConsumerBuilder.cs
index b2ae858..9e2cd7d 100644
--- a/src/Fluent.Brighter/ConsumerBuilder.cs
+++ b/src/Fluent.Brighter/ConsumerBuilder.cs
@@ -143,6 +143,18 @@ public ConsumerBuilder SetResiliencePipelineRegistry(
_resiliencePipelineRegistry = resiliencePipelineRegistry;
return this;
}
+
+ ///
+ /// Adds a resilience pipeline to the registry
+ ///
+ /// The pipeline lookup key
+ /// Configuration action for the pipeline builder
+ /// The ConsumerBuilder instance for fluent chaining
+ public ConsumerBuilder AddResiliencePipeline(string key, Action> configure)
+ {
+ _resiliencePipelineRegistry.TryAddBuilder(key, configure);
+ return this;
+ }
///
/// Adds a resilience pipeline to the registry
@@ -154,8 +166,7 @@ public ConsumerBuilder SetResiliencePipelineRegistry(
public ConsumerBuilder AddResiliencePipeline(string key,
Action> configure)
{
- _resiliencePipelineRegistry.TryAddBuilder(key, configure);
- return this;
+ return AddResiliencePipeline(key, configure);
}
private IAmAChannelFactory? _defaultChannelFactory;
@@ -184,8 +195,6 @@ public ConsumerBuilder AddChannelFactory(IAmAChannelFactory channelFactory)
return this;
}
- private InboxConfiguration? _inboxConfiguration = new();
-
///
/// Configures the inbox settings for idempotency
///
@@ -193,8 +202,12 @@ public ConsumerBuilder AddChannelFactory(IAmAChannelFactory channelFactory)
/// The ConsumerBuilder instance for fluent chaining
public ConsumerBuilder SetInbox(InboxConfiguration inboxConfiguration)
{
- _inboxConfiguration = inboxConfiguration;
- return this;
+ return SetInbox(i => i
+ .SetInbox(inboxConfiguration.Inbox)
+ .SetActionOnExists(inboxConfiguration.ActionOnExists)
+ .SetContext(inboxConfiguration.Context)
+ .SetOnceOnly(inboxConfiguration.OnceOnly)
+ .SetScope(inboxConfiguration.Scope));
}
private readonly InboxConfigurationBuilder _inboxConfigurationBuilder = new();
@@ -266,7 +279,7 @@ internal void SetConsumerOptions(ConsumersOptions options)
#pragma warning restore CS0618 // Type or member is obsolete
options.DefaultChannelFactory = _defaultChannelFactory;
- options.InboxConfiguration = _inboxConfiguration ?? _inboxConfigurationBuilder.Build();
+ options.InboxConfiguration = _inboxConfigurationBuilder.Build();
options.Subscriptions = _subscriptions;
_configuration?.Invoke(options);