public async Task Invoke(ITransportReceiveContext context, Func <ITransportReceiveContext, Task> next) { await next(context).ConfigureAwait(false); var subscriptionMessageType = GetSubscriptionMessageTypeFrom(context.Message); if (subscriptionMessageType != null) { if (!context.Message.Headers.TryGetValue(Headers.SubscriberTransportAddress, out var returnAddress)) { context.Message.Headers.TryGetValue(Headers.ReplyToAddress, out returnAddress); } if (!context.Message.Headers.TryGetValue(Headers.SubscriberEndpoint, out var endpointName)) { endpointName = string.Empty; } var intent = (MessageIntentEnum)Enum.Parse(typeof(MessageIntentEnum), context.Message.Headers[Headers.MessageIntent], true); if (intent != intentToHandle) { return; } action(new SubscriptionEventArgs { MessageType = subscriptionMessageType, SubscriberReturnAddress = returnAddress, SubscriberEndpoint = endpointName }, scenarioContext); } }
/// <summary> /// Creates a <see cref="IIncomingPhysicalMessageContext" /> based on the current context. /// </summary> public static IIncomingPhysicalMessageContext CreateIncomingPhysicalMessageContext(this StageConnector<ITransportReceiveContext, IIncomingPhysicalMessageContext> stageConnector, IncomingMessage incomingMessage, ITransportReceiveContext sourceContext) { Guard.AgainstNull(nameof(incomingMessage), incomingMessage); Guard.AgainstNull(nameof(sourceContext), sourceContext); return new IncomingPhysicalMessageContext(incomingMessage, sourceContext); }
/// <summary> /// Creates a <see cref="IRoutingContext" /> based on the current context. /// </summary> public static IRoutingContext CreateRoutingContext(this ForkConnector<ITransportReceiveContext, IRoutingContext> forkConnector, OutgoingMessage outgoingMessage, string localAddress, ITransportReceiveContext sourceContext) { Guard.AgainstNull(nameof(outgoingMessage), outgoingMessage); Guard.AgainstNullAndEmpty(nameof(localAddress), localAddress); Guard.AgainstNull(nameof(sourceContext), sourceContext); return new RoutingContext(outgoingMessage, new UnicastRoutingStrategy(localAddress), sourceContext); }
public async Task Invoke(ITransportReceiveContext context, Func <ITransportReceiveContext, Task> next) { await next(context).ConfigureAwait(false); var subscriptionMessageType = GetSubscriptionMessageTypeFrom(context.Message); if (subscriptionMessageType != null) { if (!context.Message.Headers.TryGetValue(Headers.SubscriberTransportAddress, out var returnAddress)) { context.Message.Headers.TryGetValue(Headers.ReplyToAddress, out returnAddress); } action(new SubscriptionEventArgs { MessageType = subscriptionMessageType, SubscriberReturnAddress = returnAddress }, scenarioContext); } }
Task Invoke(ITransportReceiveContext context) { return(behavior.Invoke(context, c => TaskEx.CompletedTask)); }
/// <summary> /// Creates a <see cref="IIncomingPhysicalMessageContext" /> based on the current context. /// </summary> public static IIncomingPhysicalMessageContext CreateIncomingPhysicalMessageContext(this StageConnector <ITransportReceiveContext, IIncomingPhysicalMessageContext> stageConnector, IncomingMessage incomingMessage, ITransportReceiveContext sourceContext) { Guard.AgainstNull(nameof(incomingMessage), incomingMessage); Guard.AgainstNull(nameof(sourceContext), sourceContext); return(new IncomingPhysicalMessageContext(incomingMessage, sourceContext)); }
internal static IIncomingPhysicalMessageContext CreateIncomingPhysicalMessageContext(this IStageForkConnector <ITransportReceiveContext, IIncomingPhysicalMessageContext, IBatchDispatchContext> stageForkConnector, IncomingMessage incomingMessage, ITransportReceiveContext sourceContext) { _ = stageForkConnector; return(new IncomingPhysicalMessageContext(incomingMessage, sourceContext)); }
/// <summary> /// Creates a <see cref="IRoutingContext" /> based on the current context. /// </summary> public static IRoutingContext CreateRoutingContext(this ForkConnector <ITransportReceiveContext, IRoutingContext> forkConnector, OutgoingMessage outgoingMessage, string localAddress, ITransportReceiveContext sourceContext) { Guard.AgainstNull(nameof(outgoingMessage), outgoingMessage); Guard.AgainstNullAndEmpty(nameof(localAddress), localAddress); Guard.AgainstNull(nameof(sourceContext), sourceContext); return(new RoutingContext(outgoingMessage, new UnicastRoutingStrategy(localAddress), sourceContext)); }
internal static IIncomingPhysicalMessageContext CreateIncomingPhysicalMessageContext(this IStageForkConnector<ITransportReceiveContext, IIncomingPhysicalMessageContext, IBatchDispatchContext> stageForkConnector, IncomingMessage incomingMessage, ITransportReceiveContext sourceContext) { return new IncomingPhysicalMessageContext(incomingMessage, sourceContext); }