public static Task Forward(this IMessageHandlerContext context, RoutingSlip slip) { if (context.TryGetBrokeredMessageDispatcher(out var brokeredMessageDispatcher)) { var destination = slip.Route.FirstOrDefault()?.DestinationPath; if (!string.IsNullOrWhiteSpace(destination)) { return(brokeredMessageDispatcher.Forward(context.GetInboundBrokeredMessage(), slip, context.GetTransactionContext())); } } return(Task.CompletedTask); }
public async Task Handle(TravelBookingResultCommand message, IMessageHandlerContext context) { var result = message.SagaData; lock (Console.Out) { var inbound = context.GetInboundBrokeredMessage(); Console.ForegroundColor = !inbound.IsSuccess ? ConsoleColor.Magenta : ConsoleColor.Green; foreach (var prop in inbound.ApplicationProperties) { Console.WriteLine("{0}={1},", prop.Key, prop.Value); } Console.WriteLine( "{0}\n", result); Console.ResetColor(); } await Task.CompletedTask; }
private PublishOptions MergePublishOptionsWithMessageContext(IMessageHandlerContext messageHandlerContext, PublishOptions options) => PublishOptions.Create(messageHandlerContext?.GetInboundBrokeredMessage()?.MessageContextImpl).Merge(options);