public static IServiceCollection AddQueueHandler <T>( this IServiceCollection services, ServiceBusQueueSettings <T> settings) { services.AddScoped(provider => settings); services.AddScoped(typeof(IReceiverSettings <T>), provider => settings); services.AddScoped(typeof(IMessageSender <T>), typeof(DefaultMessageSender <T>)); services.AddScoped <IQueueClient <T>, ServiceBusQueueClient <T> >(); return(services); }
public ServiceBusQueueClient( ServiceBusQueueSettings <T> settings, ILogger <ServiceBusQueueClient <T> > logger, IMessageSender <T> messageSender) { settings = settings ?? throw new ArgumentNullException(nameof(settings)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); if (!settings.IsValid) { _logger.LogError("Invalid Service Bus queue settings passed."); throw new ArgumentException($"Invalid {nameof(ServiceBusQueueSettings<T>)}", nameof(settings)); } _messageSender = messageSender; _queueClient = new QueueClient(settings.ConnectionString, settings.QueueName); }