public ReturnToSenderDequeuer(TransportDefinition transportDefinition, ReturnToSender returnToSender, IDocumentStore store, IDomainEvents domainEvents, string inputAddress, RawEndpointFactory rawEndpointFactory) { InputAddress = inputAddress; this.returnToSender = returnToSender; createEndpointConfiguration = () => { var config = rawEndpointFactory.CreateRawEndpointConfiguration(InputAddress, Handle, transportDefinition); config.CustomErrorHandlingPolicy(faultManager); return(config); }; faultManager = new CaptureIfMessageSendingFails(store, domainEvents, IncrementCounterOrProlongTimer); timer = new Timer(state => StopInternal().GetAwaiter().GetResult()); }
public ReturnToSenderDequeuer(IBodyStorage bodyStorage, ISendMessages sender, IDocumentStore store, IBus bus, Configure configure) { this.sender = sender; this.bodyStorage = bodyStorage; Action executeOnFailure = () => { if (IsCounting) { CountMessageAndStopIfReachedTarget(); } else { timer.Change(TimeSpan.FromSeconds(45), Timeout.InfiniteTimeSpan); } }; faultManager = new CaptureIfMessageSendingFails(store, bus, executeOnFailure); timer = new Timer(state => StopInternal()); InputAddress = Address.Parse(configure.Settings.EndpointName()).SubScope("staging"); }