Example #1
0
 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));
 }
Example #2
0
        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));
        }
Example #3
0
 /// <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));
 }
Example #4
0
        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));
        }
Example #5
0
 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));
 }
Example #7
0
        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);
        }