public EventProcessingPipeline(
            IProjectionEventObserver projectionEventObserver,
            IProjectionEventEnvelopeObserver projectionEventEnvelopeObserver,
            IProcessEventObserver processEventObserver, IAcknowledgeEventObserver acknowledgeEventObserver,
            ITransactionScopeObserver transactionScopeObserver)
        {
            Guard.AgainstNull(projectionEventObserver, nameof(projectionEventObserver));
            Guard.AgainstNull(projectionEventEnvelopeObserver, nameof(projectionEventEnvelopeObserver));
            Guard.AgainstNull(processEventObserver, nameof(processEventObserver));
            Guard.AgainstNull(acknowledgeEventObserver, nameof(acknowledgeEventObserver));
            Guard.AgainstNull(transactionScopeObserver, nameof(transactionScopeObserver));

            RegisterStage("Process")
            .WithEvent <OnStartTransactionScope>()
            .WithEvent <OnAfterStartTransactionScope>()
            .WithEvent <OnGetProjectionEvent>()
            .WithEvent <OnAfterGetProjectionEvent>()
            .WithEvent <OnGetProjectionEventEnvelope>()
            .WithEvent <OnAfterGetProjectionEventEnvelope>()
            .WithEvent <OnProcessEvent>()
            .WithEvent <OnAfterProcessEvent>()
            .WithEvent <OnAcknowledgeEvent>()
            .WithEvent <OnAfterAcknowledgeEvent>()
            .WithEvent <OnCompleteTransactionScope>()
            .WithEvent <OnDisposeTransactionScope>();

            RegisterObserver(projectionEventObserver);
            RegisterObserver(projectionEventEnvelopeObserver);
            RegisterObserver(processEventObserver);
            RegisterObserver(acknowledgeEventObserver);
            RegisterObserver(transactionScopeObserver);
        }
        protected ReceiveMessagePipeline(IEnumerable <IPipelineObserver> observers, ITransactionScopeObserver transactionScopeObserver)
        {
            Guard.AgainstNull(observers, nameof(observers));

            var list = observers.ToList();

            RegisterStage("Read")
            .WithEvent <OnGetMessage>()
            .WithEvent <OnAfterGetMessage>()
            .WithEvent <OnDeserializeTransportMessage>()
            .WithEvent <OnAfterDeserializeTransportMessage>()
            .WithEvent <OnDecompressMessage>()
            .WithEvent <OnAfterDecompressMessage>()
            .WithEvent <OnDecryptMessage>()
            .WithEvent <OnAfterDecryptMessage>()
            .WithEvent <OnDeserializeMessage>()
            .WithEvent <OnAfterDeserializeMessage>();

            RegisterStage("Handle")
            .WithEvent <OnStartTransactionScope>()
            .WithEvent <OnAssessMessageHandling>()
            .WithEvent <OnAfterAssessMessageHandling>()
            .WithEvent <OnProcessIdempotenceMessage>()
            .WithEvent <OnHandleMessage>()
            .WithEvent <OnAfterHandleMessage>()
            .WithEvent <OnCompleteTransactionScope>()
            .WithEvent <OnDisposeTransactionScope>()
            .WithEvent <OnSendDeferred>()
            .WithEvent <OnAfterSendDeferred>()
            .WithEvent <OnAcknowledgeMessage>()
            .WithEvent <OnAfterAcknowledgeMessage>();

            RegisterObserver(list.Get <IGetWorkMessageObserver>());
            RegisterObserver(list.Get <IDeserializeTransportMessageObserver>());
            RegisterObserver(list.Get <IDeferTransportMessageObserver>());
            RegisterObserver(list.Get <IDeserializeMessageObserver>());
            RegisterObserver(list.Get <IDecryptMessageObserver>());
            RegisterObserver(list.Get <IDecompressMessageObserver>());
            RegisterObserver(list.Get <IAssessMessageHandlingObserver>());
            RegisterObserver(list.Get <IIdempotenceObserver>());
            RegisterObserver(list.Get <IHandleMessageObserver>());
            RegisterObserver(list.Get <IAcknowledgeMessageObserver>());
            RegisterObserver(list.Get <ISendDeferredObserver>());
            RegisterObserver(transactionScopeObserver);

            RegisterObserver(list.Get <IReceiveExceptionObserver>()); // must be last
        }
示例#3
0
        public ControlInboxMessagePipeline(IServiceBusConfiguration configuration,
                                           IGetWorkMessageObserver getWorkMessageObserver,
                                           IDeserializeTransportMessageObserver deserializeTransportMessageObserver,
                                           IDeferTransportMessageObserver deferTransportMessageObserver,
                                           IDeserializeMessageObserver deserializeMessageObserver, IDecryptMessageObserver decryptMessageObserver,
                                           IDecompressMessageObserver decompressMessageObserver,
                                           IAssessMessageHandlingObserver assessMessageHandlingObserver, IIdempotenceObserver idempotenceObserver,
                                           IHandleMessageObserver handleMessageObserver, IAcknowledgeMessageObserver acknowledgeMessageObserver,
                                           ISendDeferredObserver sendDeferredObserver, IReceiveExceptionObserver receiveExceptionObserver,
                                           ITransactionScopeObserver transactionScopeObserver)
            : base(getWorkMessageObserver, deserializeTransportMessageObserver, deferTransportMessageObserver,
                   deserializeMessageObserver, decryptMessageObserver, decompressMessageObserver,
                   assessMessageHandlingObserver, idempotenceObserver, handleMessageObserver, acknowledgeMessageObserver,
                   sendDeferredObserver, receiveExceptionObserver, transactionScopeObserver)
        {
            Guard.AgainstNull(configuration, nameof(configuration));

            State.SetWorkQueue(configuration.ControlInbox.WorkQueue);
            State.SetErrorQueue(configuration.ControlInbox.ErrorQueue);
            State.SetDurationToIgnoreOnFailure(configuration.ControlInbox.DurationToIgnoreOnFailure);
            State.SetMaximumFailureCount(configuration.ControlInbox.MaximumFailureCount);
        }
示例#4
0
        public InboxMessagePipeline(IServiceBusConfiguration configuration, IEnumerable <IPipelineObserver> observers, ITransactionScopeObserver transactionScopeObserver)
            : base(observers, transactionScopeObserver)
        {
            Guard.AgainstNull(configuration, nameof(configuration));

            State.SetWorkQueue(configuration.Inbox.WorkQueue);
            State.SetDeferredQueue(configuration.Inbox.DeferredQueue);
            State.SetErrorQueue(configuration.Inbox.ErrorQueue);

            State.SetDurationToIgnoreOnFailure(configuration.Inbox.DurationToIgnoreOnFailure);
            State.SetMaximumFailureCount(configuration.Inbox.MaximumFailureCount);
        }
示例#5
0
        protected ReceiveMessagePipeline(IGetWorkMessageObserver getWorkMessageObserver,
                                         IDeserializeTransportMessageObserver deserializeTransportMessageObserver,
                                         IDeferTransportMessageObserver deferTransportMessageObserver,
                                         IDeserializeMessageObserver deserializeMessageObserver, IDecryptMessageObserver decryptMessageObserver,
                                         IDecompressMessageObserver decompressMessageObserver,
                                         IAssessMessageHandlingObserver assessMessageHandlingObserver, IIdempotenceObserver idempotenceObserver,
                                         IHandleMessageObserver handleMessageObserver, IAcknowledgeMessageObserver acknowledgeMessageObserver,
                                         ISendDeferredObserver sendDeferredObserver, IReceiveExceptionObserver receiveExceptionObserver,
                                         ITransactionScopeObserver transactionScopeObserver)
        {
            Guard.AgainstNull(getWorkMessageObserver, nameof(getWorkMessageObserver));
            Guard.AgainstNull(deserializeTransportMessageObserver, nameof(deserializeTransportMessageObserver));
            Guard.AgainstNull(deferTransportMessageObserver, nameof(deferTransportMessageObserver));
            Guard.AgainstNull(deserializeMessageObserver, nameof(deserializeMessageObserver));
            Guard.AgainstNull(decryptMessageObserver, nameof(decryptMessageObserver));
            Guard.AgainstNull(decompressMessageObserver, nameof(decompressMessageObserver));
            Guard.AgainstNull(assessMessageHandlingObserver, nameof(assessMessageHandlingObserver));
            Guard.AgainstNull(idempotenceObserver, nameof(idempotenceObserver));
            Guard.AgainstNull(handleMessageObserver, nameof(handleMessageObserver));
            Guard.AgainstNull(acknowledgeMessageObserver, nameof(acknowledgeMessageObserver));
            Guard.AgainstNull(sendDeferredObserver, nameof(sendDeferredObserver));
            Guard.AgainstNull(receiveExceptionObserver, nameof(receiveExceptionObserver));

            RegisterStage("Read")
            .WithEvent <OnGetMessage>()
            .WithEvent <OnAfterGetMessage>()
            .WithEvent <OnDeserializeTransportMessage>()
            .WithEvent <OnAfterDeserializeTransportMessage>()
            .WithEvent <OnDecompressMessage>()
            .WithEvent <OnAfterDecompressMessage>()
            .WithEvent <OnDecryptMessage>()
            .WithEvent <OnAfterDecryptMessage>()
            .WithEvent <OnDeserializeMessage>()
            .WithEvent <OnAfterDeserializeMessage>();

            RegisterStage("Handle")
            .WithEvent <OnStartTransactionScope>()
            .WithEvent <OnAssessMessageHandling>()
            .WithEvent <OnAfterAssessMessageHandling>()
            .WithEvent <OnProcessIdempotenceMessage>()
            .WithEvent <OnHandleMessage>()
            .WithEvent <OnAfterHandleMessage>()
            .WithEvent <OnCompleteTransactionScope>()
            .WithEvent <OnDisposeTransactionScope>()
            .WithEvent <OnSendDeferred>()
            .WithEvent <OnAfterSendDeferred>()
            .WithEvent <OnAcknowledgeMessage>()
            .WithEvent <OnAfterAcknowledgeMessage>();

            RegisterObserver(getWorkMessageObserver);
            RegisterObserver(deserializeTransportMessageObserver);
            RegisterObserver(deferTransportMessageObserver);
            RegisterObserver(deserializeMessageObserver);
            RegisterObserver(decryptMessageObserver);
            RegisterObserver(decompressMessageObserver);
            RegisterObserver(assessMessageHandlingObserver);
            RegisterObserver(idempotenceObserver);
            RegisterObserver(handleMessageObserver);
            RegisterObserver(acknowledgeMessageObserver);
            RegisterObserver(sendDeferredObserver);
            RegisterObserver(transactionScopeObserver);

            RegisterObserver(receiveExceptionObserver); // must be last
        }