コード例 #1
0
        async Task InvokeOutgoingMessageMutators(IOutgoingLogicalMessageContext context, Func <IOutgoingLogicalMessageContext, Task> next)
        {
            context.Extensions.TryGet(out LogicalMessage incomingLogicalMessage);
            context.Extensions.TryGet(out IncomingMessage incomingPhysicalMessage);

            var mutatorContext = new MutateOutgoingMessageContext(
                context.Message.Instance,
                context.Headers,
                incomingLogicalMessage?.Instance,
                incomingPhysicalMessage?.Headers);

            var hasMutators = false;

            foreach (var mutator in context.Builder.BuildAll <IMutateOutgoingMessages>())
            {
                hasMutators = true;

                await mutator.MutateOutgoing(mutatorContext)
                .ThrowIfNull()
                .ConfigureAwait(false);
            }

            hasOutgoingMessageMutators = hasMutators;

            if (mutatorContext.MessageInstanceChanged)
            {
                context.UpdateMessage(mutatorContext.OutgoingMessage);
            }

            await next(context).ConfigureAwait(false);
        }
コード例 #2
0
    public Task MutateOutgoing(MutateOutgoingMessageContext context)
    {
        var headers = context.OutgoingHeaders;

        headers["MutateOutgoingMessages"] = "ValueMutateOutgoingMessages";
        return(Task.FromResult(0));
    }
コード例 #3
0
        public Task MutateOutgoing(MutateOutgoingMessageContext context)
        {
            // the outgoing headers
            var outgoingHeaders = context.OutgoingHeaders;

            object incomingMessage;

            if (context.TryGetIncomingMessage(out incomingMessage))
            {
                // do something with the incoming message
            }

            IReadOnlyDictionary <string, string> incomingHeaders;

            if (context.TryGetIncomingHeaders(out incomingHeaders))
            {
                // do something with the incoming headers
            }

            // the outgoing message
            // optionally replace the message instance by setting context.OutgoingMessage
            var outgoingMessage = context.OutgoingMessage;

            return(Task.CompletedTask);
        }
コード例 #4
0
    public Task MutateOutgoing(MutateOutgoingMessageContext context)
    {
        var headers = context.OutgoingHeaders;

        headers["MutateOutgoingMessages"] = "ValueMutateOutgoingMessages";
        return(Task.CompletedTask);
    }
 public Task MutateOutgoing(MutateOutgoingMessageContext context)
 {
     if (context.OutgoingMessage is V1Message)
     {
         context.OutgoingMessage = new V2Message();
     }
     return(Task.FromResult(0));
 }
コード例 #6
0
        public Task MutateOutgoing(MutateOutgoingMessageContext context)
        {
            //foreach (var contextOutgoingHeader in context.OutgoingHeaders)
            //{
            //    Console.WriteLine($"Header key: {contextOutgoingHeader.Key} value: {contextOutgoingHeader.Value}");
            //    _log.Debug($"Header key: {contextOutgoingHeader.Key} value: {contextOutgoingHeader.Value}");
            //}

            return(Task.CompletedTask);
        }
コード例 #7
0
 public Task MutateOutgoing(MutateOutgoingMessageContext context)
 {
     Assert.IsNotEmpty(context.OutgoingHeaders);
     Assert.IsNotNull(context.OutgoingMessage);
     context.TryGetIncomingHeaders(out var incomingHeaders);
     context.TryGetIncomingMessage(out var incomingMessage);
     Assert.IsNotEmpty(incomingHeaders);
     Assert.IsNotNull(incomingMessage);
     return(Task.FromResult(0));
 }
コード例 #8
0
        public Task MutateOutgoing(MutateOutgoingMessageContext context)
        {
            var headers = context.OutgoingHeaders;

            foreach (var header in CurrentHeaders)
            {
                headers[header.Key] = header.Value;
            }


            return(Task.CompletedTask);
        }
コード例 #9
0
                public Task MutateOutgoing(MutateOutgoingMessageContext context)
                {
                    Assert.IsNotEmpty(context.OutgoingHeaders);
                    Assert.IsNotNull(context.OutgoingMessage);
                    IReadOnlyDictionary <string, string> incomingHeaders;

                    context.TryGetIncomingHeaders(out incomingHeaders);
                    object incomingmessage;

                    context.TryGetIncomingMessage(out incomingmessage);
                    Assert.IsNotEmpty(incomingHeaders);
                    Assert.IsNotNull(incomingmessage);
                    return(Task.FromResult(0));
                }
コード例 #10
0
        public async Task MutateOutgoing(MutateOutgoingMessageContext context)
        {
            // the outgoing headers
            var outgoingHeaders = context.OutgoingHeaders;

            if (context.TryGetIncomingMessage(out var incomingMessage))
            {
                // do something with the incoming message
            }

            if (context.TryGetIncomingHeaders(out var incomingHeaders))
            {
                // do something with the incoming headers
            }
            await Task.Yield();

            Console.WriteLine($"Published event, [{Thread.CurrentThread.ManagedThreadId}] User: {Thread.CurrentPrincipal?.Identity?.Name}");

            // the outgoing message
            // optionally replace the message instance by setting context.OutgoingMessage
            var outgoingMessage = context.OutgoingMessage;
        }
コード例 #11
0
 public Task MutateOutgoing(MutateOutgoingMessageContext context)
 {
     return null;
 }
コード例 #12
0
            public Task MutateOutgoing(MutateOutgoingMessageContext context)
            {
                context.OutgoingMessage = new object();

                return(TaskEx.CompletedTask);
            }
コード例 #13
0
 public Task MutateOutgoing(MutateOutgoingMessageContext context)
 {
     return(TaskEx.CompletedTask);
 }
コード例 #14
0
 public Task MutateOutgoing(MutateOutgoingMessageContext context)
 {
     return(null);
 }
コード例 #15
0
            public Task MutateOutgoing(MutateOutgoingMessageContext context)
            {
                MutateOutgoingCalled = true;

                return(TaskEx.CompletedTask);
            }
コード例 #16
0
 public Task MutateOutgoing(MutateOutgoingMessageContext context)
 {
     return TaskEx.CompletedTask;
 }
コード例 #17
0
            public Task MutateOutgoing(MutateOutgoingMessageContext context)
            {
                context.OutgoingMessage = new object();

                return TaskEx.CompletedTask;
            }
コード例 #18
0
 public Task MutateOutgoing(MutateOutgoingMessageContext context)
 {
     ValidateDataAnnotations(context.OutgoingMessage);
     return(Task.FromResult(0));
 }
コード例 #19
0
 public Task MutateOutgoing(MutateOutgoingMessageContext context)
 {
     testContext.MessageMutatorCalled = true;
     return(Task.FromResult(0));
 }
コード例 #20
0
 public Task MutateOutgoing(MutateOutgoingMessageContext context)
 {
     ValidateDataAnnotations(context.OutgoingMessage);
     return(Task.CompletedTask);
 }
コード例 #21
0
 public Task MutateOutgoing(MutateOutgoingMessageContext context)
 {
     throw new NotImplementedException();
 }
コード例 #22
0
            public Task MutateOutgoing(MutateOutgoingMessageContext context)
            {
                MutateOutgoingCalled = true;

                return TaskEx.CompletedTask;
            }