using Elsa.Features.Services;
using Elsa.MassTransit.AzureServiceBus.Features;
using Elsa.MassTransit.Features;
using JetBrains.Annotations;
// ReSharper disable once CheckNamespace
namespace Elsa.Extensions;
///
/// Provides extensions to that enables and configures MassTransit and the Azure Service Bus transport.
///
[PublicAPI]
public static class ModuleExtensions
{
///
/// Enable and configure the Azure Service Bus transport for MassTransit.
///
public static MassTransitFeature UseAzureServiceBus(this MassTransitFeature feature, string? connectionString, Action? configure = default)
{
feature.Module.Configure((Action)Configure);
return feature;
void Configure(AzureServiceBusFeature bus)
{
bus.AzureServiceBusOptions = options => options.ConnectionStringOrName = connectionString;
bus.ConnectionString = connectionString;
configure?.Invoke(bus);
}
}
}