in extension/WebJobs.Extensions.RabbitMQ/Bindings/RabbitMQClientBuilder.cs [10:34]
internal class RabbitMQClientBuilder(RabbitMQExtensionConfigProvider configProvider, IOptions<RabbitMQOptions> options) : IConverter<RabbitMQAttribute, IModel>
{
private readonly RabbitMQExtensionConfigProvider configProvider = configProvider;
private readonly IOptions<RabbitMQOptions> options = options;
public IModel Convert(RabbitMQAttribute attribute)
{
return this.CreateModelFromAttribute(attribute);
}
private IModel CreateModelFromAttribute(RabbitMQAttribute attribute)
{
if (attribute == null)
{
throw new ArgumentNullException(nameof(attribute));
}
string resolvedConnectionString = Utility.FirstOrDefault(attribute.ConnectionStringSetting, this.options.Value.ConnectionString);
bool resolvedDisableCertificateValidation = Utility.FirstOrDefault(attribute.DisableCertificateValidation, this.options.Value.DisableCertificateValidation);
IRabbitMQService service = this.configProvider.GetService(resolvedConnectionString, resolvedDisableCertificateValidation);
return service.Model;
}
}