NServiceBus.MoveToErrorsExecutor.MoveToErrorQueue C# (CSharp) Method

MoveToErrorQueue() public method

public MoveToErrorQueue ( string errorQueueAddress, IncomingMessage message, Exception exception, TransportTransaction transportTransaction ) : System.Threading.Tasks.Task
errorQueueAddress string
message IncomingMessage
exception System.Exception
transportTransaction TransportTransaction
return System.Threading.Tasks.Task
        public Task MoveToErrorQueue(string errorQueueAddress, IncomingMessage message, Exception exception, TransportTransaction transportTransaction)
        {
            message.RevertToOriginalBodyIfNeeded();

            var outgoingMessage = new OutgoingMessage(message.MessageId, new Dictionary<string, string>(message.Headers), message.Body);

            var headers = outgoingMessage.Headers;
            headers.Remove(Headers.DelayedRetries);
            headers.Remove(Headers.ImmediateRetries);

            ExceptionHeaderHelper.SetExceptionHeaders(headers, exception);

            foreach (var faultMetadata in staticFaultMetadata)
            {
                headers[faultMetadata.Key] = faultMetadata.Value;
            }

            headerCustomizations(headers);

            var transportOperations = new TransportOperations(new TransportOperation(outgoingMessage, new UnicastAddressTag(errorQueueAddress)));

            return dispatcher.Dispatch(transportOperations, transportTransaction, new ContextBag());
        }