Ejemplo n.º 1
0
        public PublishContextProxy(SendContext context, TMessage message)
            : base(context, message)
        {
            _context = context;

            _context.GetOrAddPayload <PublishContext>(() => this);
            _context.GetOrAddPayload <PublishContext <TMessage> >(() => this);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Transfer the header information from the ConsumeContext to the SendContext, including any non-MT headers.
        /// </summary>
        /// <param name="sendContext"></param>
        /// <param name="consumeContext"></param>
        public static void TransferConsumeContextHeaders(this SendContext sendContext, ConsumeContext consumeContext)
        {
            sendContext.GetOrAddPayload(() => consumeContext);

            sendContext.SourceAddress = consumeContext.ReceiveContext.InputAddress;

            if (consumeContext.ConversationId.HasValue)
            {
                sendContext.ConversationId = consumeContext.ConversationId;
            }

            if (consumeContext.CorrelationId.HasValue)
            {
                sendContext.InitiatorId = consumeContext.CorrelationId;
            }
            else if (consumeContext.RequestId.HasValue)
            {
                sendContext.InitiatorId = consumeContext.RequestId;
            }

            foreach (KeyValuePair <string, object> header in consumeContext.Headers.GetAll())
            {
                if (header.Key.StartsWith("MT-"))
                {
                    continue;
                }

                sendContext.Headers.Set(header.Key, header.Value);
            }
        }
Ejemplo n.º 3
0
        public PublishContextProxy(SendContext context)
            : base(context)
        {
            _context = context;

            _context.GetOrAddPayload <PublishContext>(() => this);
        }
            Task ISendContextPipe.Send <T>(SendContext <T> context)
                where T : class
            {
                context.GetOrAddPayload(() => _payload);

                return(_pipe is ISendContextPipe sendContextPipe
                    ? sendContextPipe.Send(context)
                    : TaskUtil.Completed);
            }
Ejemplo n.º 5
0
            public Task Send(SendContext <TMessage> context)
            {
                if (_context != null)
                {
                    var instanceContext = _context;
                    context.GetOrAddPayload(() => instanceContext);
                }

                return(_pipe.IsNotEmpty() ? _pipe.Send(context) : TaskUtil.Completed);
            }
Ejemplo n.º 6
0
        public Task Send(SendContext <T> context, IPipe <SendContext <T> > next)
        {
            if (context.TryGetPayload <ApplicationInsightsPayload>(out _))
            {
                return(next.Send(context));
            }

            context.GetOrAddPayload(() => new ApplicationInsightsPayload());

            return(SendWithTelemetry(context, next));
        }
 public async Task Send(SendContext <T> context, IPipe <SendContext <T> > next)
 {
     context.GetOrAddPayload(() => _db);
     await next.Send(context);
 }
Ejemplo n.º 8
0
 protected override void Send <T>(SendContext <T> context)
 {
     context.GetOrAddPayload(() => _payload);
 }