public RetryLaterMiddleware(ITopologyProvider topology, INamingConventions conventions, IChannelFactory channelFactory, IRetryInformationHeaderUpdater headerUpdater, RetryLaterOptions options = null)
 {
     TopologyProvider    = topology;
     Conventions         = conventions;
     ChannelFactory      = channelFactory;
     _headerUpdater      = headerUpdater;
     AcknowledgementFunc = options?.AcknowledgementFunc ?? (context => context.GetMessageAcknowledgement());
     DeliveryArgsFunc    = options?.DeliveryArgsFunc ?? (context => context.GetDeliveryEventArgs());
 }
 public RetryLaterMiddleware(
     ITopologyProvider topology,
     INamingConventions conventions,
     IChannelFactory channelFactory,
     IRetryInformationHeaderUpdater headerUpdater,
     ILogger <RetryLaterMiddleware> logger,
     RetryLaterOptions options = null)
 {
     TopologyProvider    = topology ?? throw new ArgumentNullException(nameof(topology));
     Conventions         = conventions ?? throw new ArgumentNullException(nameof(conventions));
     ChannelFactory      = channelFactory ?? throw new ArgumentNullException(nameof(channelFactory));
     _headerUpdater      = headerUpdater ?? throw new ArgumentNullException(nameof(headerUpdater));
     Logger              = logger ?? throw new ArgumentNullException(nameof(logger));
     AcknowledgementFunc = options?.AcknowledgementFunc ?? (context => context.GetMessageAcknowledgement());
     DeliveryArgsFunc    = options?.DeliveryArgsFunc ?? (context => context.GetDeliveryEventArgs());
 }