Пример #1
0
        public void Invoke(BehaviorContext context, Action next)
        {
            // for now we cheat and pull it from the behavior context:
            var callbackInvoked = context.Get<bool>(CallbackInvocationBehavior.CallbackInvokedKey);
            var messageHandlers = new LoadedMessageHandlers();

            foreach (var messageToHandle in context.Get<LogicalMessages>())
            {
                var handlerTypedToInvoke = HandlerRegistry.GetHandlerTypes(messageToHandle.MessageType).ToList();

                if (!callbackInvoked && !handlerTypedToInvoke.Any())
                {
                    var error = string.Format("No handlers could be found for message type: {0}", messageToHandle.MessageType);
                    throw new InvalidOperationException(error);
                }

                foreach (var handlerType in handlerTypedToInvoke)
                {
                    messageHandlers.AddHandler(messageToHandle.MessageType, context.Builder.Build(handlerType));
                }
            }

            context.Set(messageHandlers);

            next();
        }
Пример #2
0
        public void Invoke(BehaviorContext context, Action next)
        {
            // for now we cheat and pull it from the behavior context:
            var callbackInvoked = context.Get <bool>(CallbackInvocationBehavior.CallbackInvokedKey);
            var messageHandlers = new LoadedMessageHandlers();

            foreach (var messageToHandle in context.Get <LogicalMessages>())
            {
                var handlerTypedToInvoke = HandlerRegistry.GetHandlerTypes(messageToHandle.MessageType).ToList();

                if (!callbackInvoked && !handlerTypedToInvoke.Any())
                {
                    var error = string.Format("No handlers could be found for message type: {0}", messageToHandle.MessageType);
                    throw new InvalidOperationException(error);
                }

                foreach (var handlerType in handlerTypedToInvoke)
                {
                    messageHandlers.AddHandler(messageToHandle.MessageType, context.Builder.Build(handlerType));
                }
            }

            context.Set(messageHandlers);

            next();
        }
Пример #3
0
        public void Invoke(BehaviorContext context, Action next)
        {
            var messageHandlers = context.Get <LoadedMessageHandlers>();

            foreach (var messageToHandle in context.Get <LogicalMessages>())
            {
                ExtensionMethods.CurrentMessageBeingHandled = messageToHandle.Instance;

                DispatchMessageToHandlersBasedOnType(context.Builder, messageToHandle, messageHandlers, context);
            }

            ExtensionMethods.CurrentMessageBeingHandled = null;

            next();
        }
Пример #4
0
        public void Invoke(BehaviorContext context, Action next)
        {
            var messageHandlers = context.Get<LoadedMessageHandlers>();

            foreach (var messageToHandle in context.Get<LogicalMessages>())
            {
                ExtensionMethods.CurrentMessageBeingHandled = messageToHandle.Instance;

                DispatchMessageToHandlersBasedOnType(context.Builder, messageToHandle, messageHandlers,context);
            }

            ExtensionMethods.CurrentMessageBeingHandled = null;

            next();
        }
Пример #5
0
        IEnumerable <ActiveSagaInstance> DetectSagas(BehaviorContext context)
        {
            var loadedMessageHandlers = context.Get <LoadedMessageHandlers>();

            foreach (var message in context.Get <LogicalMessages>())
            {
                foreach (var messageHandler in loadedMessageHandlers.GetHandlersFor(message.MessageType))
                {
                    var saga = messageHandler.Instance as ISaga;

                    if (saga != null)
                    {
                        yield return(new ActiveSagaInstance(saga, messageHandler, message));
                    }
                }
            }
        }
        public void Invoke(BehaviorContext context, Action next)
        {
            var messageWasHandled = HandleCorrelatedMessage(context.TransportMessage, context.Get<LogicalMessages>());

            context.Set(CallbackInvokedKey, messageWasHandled);

            next();
        }
Пример #7
0
        public void Invoke(BehaviorContext context, Action next)
        {
            foreach (var logicalMessage in context.Get <LogicalMessages>())
            {
                foreach (var mutator in context.Builder.BuildAll <IMutateIncomingMessages>())
                {
                    var current = logicalMessage.Instance;

                    //message mutators may need to assume that this has been set (eg. for the purposes of headers).
                    ExtensionMethods.CurrentMessageBeingHandled = current;

                    logicalMessage.UpdateMessageInstance(mutator.MutateIncoming(current));
                }
            }

            next();
        }
        public void Invoke(BehaviorContext context, Action next)
        {
            foreach (var logicalMessage in context.Get<LogicalMessages>())
            {

                foreach (var mutator in context.Builder.BuildAll<IMutateIncomingMessages>())
                {
                    var current = logicalMessage.Instance;

                    //message mutators may need to assume that this has been set (eg. for the purposes of headers).
                    ExtensionMethods.CurrentMessageBeingHandled = current;

                    logicalMessage.UpdateMessageInstance(mutator.MutateIncoming(current));
                }
            }

            next();
        }
        public void Invoke(BehaviorContext context, Action next)
        {
            var messageWasHandled = HandleCorrelatedMessage(context.TransportMessage, context.Get <LogicalMessages>());

            context.Set(CallbackInvokedKey, messageWasHandled);

            next();
        }
Пример #10
0
        IEnumerable<ActiveSagaInstance> DetectSagas(BehaviorContext context)
        {
            var loadedMessageHandlers = context.Get<LoadedMessageHandlers>();

            foreach (var message in context.Get<LogicalMessages>())
            {
                foreach (var messageHandler in loadedMessageHandlers.GetHandlersFor(message.MessageType))
                {
                    var saga = messageHandler.Instance as ISaga;

                    if (saga != null)
                    {
                        yield return new ActiveSagaInstance(saga, messageHandler, message);
                    }
                }
            }
        }