public SagaOrchestrator(ISagaPersister sagaPersister, ISagaInitializer sagaInitializer, ISagaOptionsProvider sagaOptionsProvider, IBrokeredMessageDispatcher brokeredMessageDispatcher) { _sagaPersister = sagaPersister ?? throw new ArgumentNullException(nameof(sagaPersister)); _sagaInitializer = sagaInitializer ?? throw new ArgumentNullException(nameof(sagaInitializer)); _sagaOptionsProvider = sagaOptionsProvider ?? throw new ArgumentNullException(nameof(sagaOptionsProvider)); _brokeredMessageDispatcher = brokeredMessageDispatcher ?? throw new ArgumentNullException(nameof(brokeredMessageDispatcher)); }
public static Task Forward(this IBrokeredMessageDispatcher dispatcher, InboundBrokeredMessage message, RoutingSlip slip, TransactionContext transactionContext) { var destination = slip.RouteToNextStep(); message.WithRoutingSlip(slip); return(dispatcher.Forward(message, destination, transactionContext)); }
/// <summary> /// Creates a brokered message receiver that receives messages of <typeparamref name="TMessage"/> /// </summary> /// <param name="infrastructureReceiver">The message broker infrastructure</param> /// <param name="brokeredMessageDetailProvider">Provides routing details to the brokered message receiver</param> /// <param name="messageDispatcher">Dispatches messages of <typeparamref name="TMessage"/> to the appropriate <see cref="IMessageHandler{TMessage}"/></param> /// <param name="logger">Provides logging capability</param> public BrokeredMessageReceiver(IMessagingInfrastructureReceiver <TMessage> infrastructureReceiver, IBrokeredMessageDetailProvider brokeredMessageDetailProvider, IBrokeredMessageDispatcher brokeredMessageDispatcher, ILogger <BrokeredMessageReceiver <TMessage> > logger, IServiceScopeFactory serviceFactory) { _syncLock = new object(); _infrastructureReceiver = infrastructureReceiver ?? throw new ArgumentNullException(nameof(infrastructureReceiver)); _brokeredMessageDetailProvider = brokeredMessageDetailProvider ?? throw new ArgumentNullException(nameof(brokeredMessageDetailProvider)); _brokeredMessageDispatcher = brokeredMessageDispatcher ?? throw new ArgumentNullException(nameof(brokeredMessageDispatcher)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _serviceFactory = serviceFactory ?? throw new ArgumentNullException(nameof(serviceFactory)); }
public static Task Send <TMessage>(this IBrokeredMessageDispatcher dispatcher, TMessage message, RoutingSlip slip, TransactionContext transactionContext = null, SendOptions options = null) where TMessage : ICommand { if (options == null) { options = new SendOptions(); } var destination = slip.RouteToNextStep(); options.WithRoutingSlip(slip); return(dispatcher.Send(message, destination, transactionContext, options)); }
public RentalsController(IMessageDispatcher dispatcher, IQueryDispatcher queryDispatcher, IBrokeredMessageDispatcher brokeredMessageDispatcher) { _dispatcher = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher)); _queryDispatcher = queryDispatcher ?? throw new ArgumentNullException(nameof(queryDispatcher)); _brokeredMessageDispatcher = brokeredMessageDispatcher; }
public BookRentalCarCommandHandler(IBrokeredMessageDispatcher brokeredMessageDispatcher, IRepository <Domain.Aggregates.CarRental, Guid> repository, IEventMapper eventMapper) { _brokeredMessageDispatcher = brokeredMessageDispatcher ?? throw new ArgumentNullException(nameof(brokeredMessageDispatcher)); _repository = repository ?? throw new ArgumentNullException(nameof(repository)); _eventMapper = eventMapper ?? throw new ArgumentNullException(nameof(eventMapper)); }
public static bool TryGetBrokeredMessageDispatcher(this IMessageHandlerContext context, out IBrokeredMessageDispatcher brokeredMessageDispatcher) { if (context.Container.TryGet <IExternalDispatcher>(out var ed)) { if (ed is IBrokeredMessageDispatcher dispatcher) { brokeredMessageDispatcher = dispatcher; return(true); } } brokeredMessageDispatcher = null; return(false); }