public Task CancelDeferredMessages(string messageKey, IBehaviorContext context) { var controlMessage = ControlMessageFactory.Create(MessageIntentEnum.Send); controlMessage.Headers[Headers.SagaId] = messageKey; controlMessage.Headers[TimeoutManagerHeaders.ClearTimeouts] = bool.TrueString; var dispatchContext = new RoutingContext(controlMessage, new UnicastRoutingStrategy(timeoutManagerAddress), context); var cache = context.Extensions.Get<IPipelineCache>(); var dispatchPipeline = cache.Pipeline<IRoutingContext>(); return dispatchPipeline.Invoke(dispatchContext); }
public static Task HandleCurrentMessageLater(IInvokeHandlerContext context) { if (context.HandleCurrentMessageLaterWasCalled) { return(TaskEx.CompletedTask); } var messageBeingProcessed = context.Extensions.Get <IncomingMessage>(); var settings = context.Builder.Build <ReadOnlySettings>(); var cache = context.Extensions.Get <IPipelineCache>(); var pipeline = cache.Pipeline <IRoutingContext>(); var outgoingMessage = new OutgoingMessage( messageBeingProcessed.MessageId, messageBeingProcessed.Headers, messageBeingProcessed.Body); var routingContext = new RoutingContext(outgoingMessage, new UnicastRoutingStrategy(settings.LocalAddress()), context); return(pipeline.Invoke(routingContext)); }
public static Task HandleCurrentMessageLater(IInvokeHandlerContext context) { if (context.HandleCurrentMessageLaterWasCalled) { return TaskEx.CompletedTask; } var messageBeingProcessed = context.Extensions.Get<IncomingMessage>(); var settings = context.Builder.Build<ReadOnlySettings>(); var cache = context.Extensions.Get<IPipelineCache>(); var pipeline = cache.Pipeline<IRoutingContext>(); var outgoingMessage = new OutgoingMessage( messageBeingProcessed.MessageId, messageBeingProcessed.Headers, messageBeingProcessed.Body); var routingContext = new RoutingContext(outgoingMessage, new UnicastRoutingStrategy(settings.LocalAddress()), context); return pipeline.Invoke(routingContext); }