public async Task Send(ConsumeContext <TMessage> context, IPipe <ConsumeContext <TMessage> > next) { if (context.RequestId.HasValue) { var clientId = context.Headers.Get(MessageHeaders.ClientId, default(Guid?)); if (clientId.HasValue) { var acceptedContext = await _endpoint.Accept(clientId.Value, context.RequestId.Value).ConfigureAwait(false); context.AddOrUpdatePayload(() => acceptedContext, existing => acceptedContext); await next.Send(context).ConfigureAwait(false); } else { var exception = new RequestException($"ClientId not specified (requestId: {context.RequestId})"); await context.NotifyFaulted(TimeSpan.Zero, TypeMetadataCache <ConductorMessageFilter <TMessage> > .ShortName, exception).ConfigureAwait(false); } } else { var exception = new RequestException("RequestId is required"); await context.NotifyFaulted(TimeSpan.Zero, TypeMetadataCache <ConductorMessageFilter <TMessage> > .ShortName, exception).ConfigureAwait(false); } }
public async Task Send(ConsumerConsumeContext <TConsumer, TMessage> context, IPipe <ConsumerConsumeContext <TConsumer, TMessage> > next) { if (!context.RequestId.HasValue) { throw new RequestException("RequestId is required"); } var clientId = context.Headers.Get(MessageHeaders.ClientId, default(Guid?)); if (!clientId.HasValue) { throw new RequestException($"ClientId not specified (requestId: {context.RequestId})"); } var acceptedContext = await _endpoint.Accept(clientId.Value, context.RequestId.Value).ConfigureAwait(false); context.AddOrUpdatePayload(() => acceptedContext, existing => acceptedContext); await next.Send(context).ConfigureAwait(false); }