public Task MutateIncoming(MutateIncomingMessageContext context)
    {
        var headers = context.Headers;

        headers.Add("MutateIncomingMessages", "ValueMutateIncomingMessages");
        return(Task.FromResult(0));
    }
    public Task MutateIncoming(MutateIncomingMessageContext context)
    {
        var headers = context.Headers;

        headers.Add("MutateIncomingMessages", "ValueMutateIncomingMessages");
        return(Task.CompletedTask);
    }
        async Task InvokeIncomingMessageMutators(IIncomingLogicalMessageContext context, Func <IIncomingLogicalMessageContext, Task> next)
        {
            var logicalMessage = context.Message;
            var current        = logicalMessage.Instance;

            var mutatorContext = new MutateIncomingMessageContext(current, context.Headers);

            var hasMutators = false;

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

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

            hasIncomingMessageMutators = hasMutators;

            if (mutatorContext.MessageInstanceChanged)
            {
                context.UpdateMessageInstance(mutatorContext.Message);
            }

            await next(context).ConfigureAwait(false);
        }
 public Task MutateIncoming(MutateIncomingMessageContext message)
 {
     if (message.Message is V1Message)
     {
         message.Message = new V2Message();
     }
     return(Task.FromResult(0));
 }
                public Task MutateIncoming(MutateIncomingMessageContext context)
                {
                    var original = (OriginalMessage)context.Message;

                    context.Message = new NewMessage {
                        SomeId = original.SomeId
                    };
                    return(Task.FromResult(0));
                }
示例#6
0
        public Task MutateIncoming(MutateIncomingMessageContext context)
        {
            //foreach (var contextOutgoingHeader in context.Headers)
            //{
            //    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 MutateIncoming(MutateIncomingMessageContext context)
        {
            // the incoming headers
            var headers = context.Headers;

            // the incoming message
            // optionally replace the message instance by setting context.Message
            var message = context.Message;

            return(Task.FromResult(0));
        }
示例#8
0
        public Task MutateIncoming(MutateIncomingMessageContext context)
        {
            // the incoming headers
            IDictionary <string, string> headers = context.Headers;

            // the incoming message
            // optionally replace the message instance by setting context.Message
            object message = context.Message;


            return(Task.FromResult(0));
        }
            public Task MutateIncoming(MutateIncomingMessageContext context)
            {
                context.Message = new object();

                return TaskEx.CompletedTask;
            }
示例#10
0
 public Task MutateIncoming(MutateIncomingMessageContext context)
 {
     Assert.IsNotEmpty(context.Headers);
     Assert.IsNotNull(context.Message);
     return(Task.FromResult(0));
 }
 public Task MutateIncoming(MutateIncomingMessageContext context)
 {
     throw new NotImplementedException();
 }
示例#12
0
 public Task MutateIncoming(MutateIncomingMessageContext context)
 {
     ValidateDataAnnotations(context.Message);
     return(Task.FromResult(0));
 }
 public Task MutateIncoming(MutateIncomingMessageContext context)
 {
     return null;
 }
 public Task MutateIncoming(MutateIncomingMessageContext context)
 {
     return TaskEx.CompletedTask;
 }
示例#15
0
        public Task MutateIncoming(MutateIncomingMessageContext context)
        {
            CurrentMessage = context.Message;

            var headers = context.Headers;

            // There are certain headers that we can make note of
            // These will be committed to the event stream and included in all .Reply or .Publish done via this Unit Of Work
            // Meaning all receivers of events from the command will get information about the command's message, if they care
            foreach (var header in Defaults.CarryOverHeaders)
            {
                var defaultHeader = "";
                headers.TryGetValue(header, out defaultHeader);

                if (string.IsNullOrEmpty(defaultHeader))
                {
                    defaultHeader = NotFound;
                }

                var workHeader = $"{PrefixHeader}.{header}";
                CurrentHeaders[workHeader] = defaultHeader;
            }

            // Copy any application headers the user might have included
            var userHeaders = headers.Keys.Where(h =>
                                                 !h.Equals("CorrId", StringComparison.InvariantCultureIgnoreCase) &&
                                                 !h.Equals("WinIdName", StringComparison.InvariantCultureIgnoreCase) &&
                                                 !h.StartsWith("NServiceBus", StringComparison.InvariantCultureIgnoreCase) &&
                                                 !h.StartsWith("$", StringComparison.InvariantCultureIgnoreCase) &&
                                                 !h.Equals(Defaults.CommitIdHeader, StringComparison.InvariantCultureIgnoreCase) &&
                                                 !h.Equals(Defaults.RequestResponse, StringComparison.InvariantCultureIgnoreCase) &&
                                                 !h.Equals(Defaults.Retries, StringComparison.InvariantCultureIgnoreCase));

            foreach (var header in userHeaders)
            {
                CurrentHeaders[header] = headers[header];
            }
            CurrentHeaders[Defaults.InstanceHeader] = Defaults.Instance.ToString();


            CommitId = Guid.NewGuid();

            try
            {
                string messageId;
                // Attempt to get MessageId from NServicebus headers
                // If we maintain a good CommitId convention it should solve the message idempotentcy issue (assuming the storage they choose supports it)
                if (CurrentHeaders.TryGetValue(Defaults.MessageIdHeader, out messageId))
                {
                    CommitId = Guid.Parse(messageId);
                }

                // Allow the user to send a CommitId along with his message if he wants
                if (CurrentHeaders.TryGetValue(Defaults.CommitIdHeader, out messageId))
                {
                    CommitId = Guid.Parse(messageId);
                }
            }
            catch (FormatException) { }

            return(Task.CompletedTask);
        }
示例#16
0
        public Task MutateIncoming(MutateIncomingMessageContext context)
        {
            var headers = context.Headers;

            return(Task.CompletedTask);
        }
 public Task MutateIncoming(MutateIncomingMessageContext context)
 {
     return(null);
 }
            public Task MutateIncoming(MutateIncomingMessageContext context)
            {
                context.Message = new object();

                return(TaskEx.CompletedTask);
            }
 public Task MutateIncoming(MutateIncomingMessageContext context)
 {
     return(TaskEx.CompletedTask);
 }
            public Task MutateIncoming(MutateIncomingMessageContext context)
            {
                MutateIncomingCalled = true;

                return(TaskEx.CompletedTask);
            }
示例#21
0
 public Task MutateIncoming(MutateIncomingMessageContext context)
 {
     ValidateDataAnnotations(context.Message);
     return(Task.CompletedTask);
 }
            public Task MutateIncoming(MutateIncomingMessageContext context)
            {
                MutateIncomingCalled = true;

                return TaskEx.CompletedTask;
            }