NServiceBus.Recoverability.SetupLegacyRetriesSatellite C# (CSharp) Method

SetupLegacyRetriesSatellite() public method

public SetupLegacyRetriesSatellite ( FeatureConfigurationContext context ) : void
context FeatureConfigurationContext
return void
        void SetupLegacyRetriesSatellite(FeatureConfigurationContext context)
        {
            var retriesQueueLogicalAddress = context.Settings.LogicalAddress().CreateQualifiedAddress("Retries");
            var retriesQueueTransportAddress = context.Settings.GetTransportAddress(retriesQueueLogicalAddress);

            var mainQueueLogicalAddress = context.Settings.LogicalAddress();
            var mainQueueTransportAddress = context.Settings.GetTransportAddress(mainQueueLogicalAddress);

            var requiredTransactionMode = context.Settings.GetRequiredTransactionModeForReceives();

            context.AddSatelliteReceiver("Legacy Retries Processor", retriesQueueTransportAddress, requiredTransactionMode, new PushRuntimeSettings(maxConcurrency: 1),
                (config, errorContext) =>
                {
                    return RecoverabilityAction.MoveToError(config.Failed.ErrorQueue);
                },
                (builder, messageContext) =>
                {
                    var messageDispatcher = builder.Build<IDispatchMessages>();

                    var outgoingHeaders = messageContext.Headers;
                    outgoingHeaders.Remove("NServiceBus.ExceptionInfo.Reason");
                    outgoingHeaders.Remove("NServiceBus.ExceptionInfo.ExceptionType");
                    outgoingHeaders.Remove("NServiceBus.ExceptionInfo.InnerExceptionType");
                    outgoingHeaders.Remove("NServiceBus.ExceptionInfo.HelpLink");
                    outgoingHeaders.Remove("NServiceBus.ExceptionInfo.Message");
                    outgoingHeaders.Remove("NServiceBus.ExceptionInfo.Source");
                    outgoingHeaders.Remove("NServiceBus.FailedQ");
                    outgoingHeaders.Remove("NServiceBus.TimeOfFailure");

                    //HINT: this header is added by v3 when doing SLR
                    outgoingHeaders.Remove("NServiceBus.OriginalId");

                    var outgoingMessage = new OutgoingMessage(messageContext.MessageId, outgoingHeaders, messageContext.Body);
                    var outgoingOperation = new TransportOperation(outgoingMessage, new UnicastAddressTag(mainQueueTransportAddress));

                    return messageDispatcher.Dispatch(new TransportOperations(outgoingOperation), messageContext.TransportTransaction, messageContext.Context);
                });
        }