Ejemplo n.º 1
0
    protected void AddTraceHeadersForRoutingBackReply(BaseForwardRuleContext context)
    {
        if (!context.ForwardedHeaders.ContainsKey(RouterHeaders.ReplyToRouter))
        {
            UnwrapCorrelationIdAndSetTraceHeader(context);
        }

        var newCorrelationId = TLV
                               .Encode("iface", context.IncomingInterface);

        if (context.ForwardedHeaders.TryGetValue(RouterHeaders.ReplyToRouter, out var replyToRouter))
        {
            newCorrelationId = newCorrelationId.AppendTLV("reply-to-router", replyToRouter);
        }
        else if (context.ForwardedHeaders.TryGetValue(Headers.ReplyToAddress, out var replyToHeader))
        {
            newCorrelationId = newCorrelationId.AppendTLV("reply-to", replyToHeader);
        }

        if (context.ForwardedHeaders.TryGetValue(Headers.CorrelationId, out var correlationId))
        {
            newCorrelationId = newCorrelationId.AppendTLV("id", correlationId);
        }

        context.ForwardedHeaders[Headers.CorrelationId]       = newCorrelationId;
        context.ForwardedHeaders[Headers.ReplyToAddress]      = localAddress;
        context.ForwardedHeaders[RouterHeaders.ReplyToRouter] = endpointName;
    }
 void AddTrace(TransportOperation op)
 {
     if (op.Message.Headers.TryGetValue("NServiceBus.Bridge.Trace", out var trace))
     {
         trace = trace.AppendTLV("via", endpointName);
     }
     else
     {
         trace = TLV.Encode("via", endpointName);
     }
     op.Message.Headers["NServiceBus.Bridge.Trace"] = trace;
 }