async Task Execute(BehaviorContext <TInstance> context) { ConsumeEventContext <TInstance> consumeContext = context.CreateConsumeContext(); var message = _messageFactory?.Invoke(consumeContext) ?? await _asyncMessageFactory(consumeContext).ConfigureAwait(false); IPipe <SendContext <TMessage> > sendPipe = _contextCallback != null ? Pipe.Execute <SendContext <TMessage> >(sendContext => { _contextCallback(consumeContext, sendContext); }) : Pipe.Empty <SendContext <TMessage> >(); if (_destinationAddressProvider != null) { var destinationAddress = _destinationAddressProvider(consumeContext); var endpoint = await consumeContext.GetSendEndpoint(destinationAddress).ConfigureAwait(false); await endpoint.Send(message, sendPipe).ConfigureAwait(false); } else { await consumeContext.Send(message, sendPipe).ConfigureAwait(false); } }
async Task Execute(BehaviorContext <TInstance> context) { ConsumeEventContext <TInstance> consumeContext = context.CreateConsumeContext(); var message = _messageFactory(consumeContext); var endpoint = await consumeContext.GetSendEndpoint(_destinationAddress).ConfigureAwait(false); await endpoint.Send(message, _sendPipe).ConfigureAwait(false); }
protected virtual async Task SendCommand(ConsumeEventContext <FutureState, TRequest> context, IPipe <SendContext <TCommand> > pipe) { var command = await CreateCommand(context).ConfigureAwait(false); if (DestinationAddress != null) { var endpoint = await context.GetSendEndpoint(DestinationAddress).ConfigureAwait(false); await endpoint.Send(command, pipe).ConfigureAwait(false); } else { await context.Publish(command, pipe).ConfigureAwait(false); } }
async Task Execute(BehaviorContext <TInstance> context) { ConsumeEventContext <TInstance> consumeContext = context.CreateConsumeContext(); var message = _messageFactory?.Invoke(consumeContext) ?? await _asyncMessageFactory(consumeContext).ConfigureAwait(false); if (_destinationAddressProvider != null) { var destinationAddress = _destinationAddressProvider(consumeContext); var endpoint = await consumeContext.GetSendEndpoint(destinationAddress).ConfigureAwait(false); await endpoint.Send(message, _sendPipe).ConfigureAwait(false); } else { await consumeContext.Send(message, _sendPipe).ConfigureAwait(false); } }