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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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); } } } }