コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: ResultStep.cs プロジェクト: kmiltiadous/Chatter
        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;
        }
コード例 #3
0
 private PublishOptions MergePublishOptionsWithMessageContext(IMessageHandlerContext messageHandlerContext, PublishOptions options)
 => PublishOptions.Create(messageHandlerContext?.GetInboundBrokeredMessage()?.MessageContextImpl).Merge(options);