Esempio n. 1
0
 public SagaWorkerMessageSink(ISagaWorker <TSaga> worker, IPipelineSink <TMessage> sink)
 {
     _worker = worker;
     _sink   = sink;
 }
Esempio n. 2
0
        private UnsubscribeAction ConnectToSink <TSaga, TMessage>(ISubscriberContext context, ISagaWorker <TSaga> worker, DataEvent <TSaga, TMessage> eevent, IEnumerable <State> states)
            where TSaga : SagaStateMachine <TSaga>, ISaga
            where TMessage : class
        {
            var factory = new SagaStateMachineMessageSinkFactory <TSaga, TMessage>(context, _policyFactory);
            IPipelineSink <TMessage> sink = factory.Create(eevent, states);

            var workerSink = new SagaWorkerMessageSink <TSaga, TMessage>(worker, sink);

            return(context.Pipeline.ConnectToRouter(workerSink, () => context.SubscribedTo <Distributed <TMessage> >()));
        }
 public SagaWorkerMessageSink(ISagaWorker <TSaga> worker, ISagaMessageSink <TSaga, TMessage> sink)
 {
     _worker = worker;
     _sink   = sink;
 }
Esempio n. 4
0
 private UnsubscribeAction ConnectSink <TSaga>(ISubscriberContext context, ISagaWorker <TSaga> worker, Type messageType, Event @event, IEnumerable <State> states)
 {
     return(this.FastInvoke <SagaDistributorSubscriber, UnsubscribeAction>(new[] { typeof(TSaga), messageType }, "ConnectToSink", context, worker, @event, states));
 }