Exemplo n.º 1
0
        /// <summary>
        /// Инициализирует новый экземпляр класса <see cref="SagaConfiguration{TS,TM,TK}"/>.
        /// </summary>
        /// <param name="receiverConfigurator">Конфигурация получателя входящего сообщения.</param>
        /// <param name="sagaRepository">Хранилище саги.</param>
        /// <param name="sagaIdSeparator">Вычислитель идентификатора саги.</param>
        /// <param name="sagaFactory">Фабрика саги.</param>
        /// <param name="sagaStep">Действие выполняемое при обработке саги.</param>
        /// <param name="sagaFailedHandler">Обработчик возникающих ошибок.</param>
        public SagaConfiguration(
            IReceiverConfigurator <TM> receiverConfigurator,
            ISagaRepository <TS, TK> sagaRepository,
            ISagaIdSeparator <TM, TK> sagaIdSeparator,
            ISagaFactory <TS, TK> sagaFactory,
            ISagaStep <TS, TM, TK> sagaStep,
            ISagaFailedHandler <TS, TM, TK> sagaFailedHandler)
        {
            this.receiverConfigurator = receiverConfigurator;

            this.sagaLifecycle = new DefaultSagaLifecycle <TS, TM, TK>(sagaRepository, sagaIdSeparator, sagaFactory);
            this.sagaConsumer  = new SagaConsumerOf <TS, TM, TK>(this.sagaLifecycle, sagaStep, false, sagaFailedHandler);
        }
Exemplo n.º 2
0
        /// <inheritdoc />
        public ISagaConfigurator <TS, TM, TK> OnSagaFailed(ISagaFailedHandler <TS, TM, TK> sagaFailedHandler)
        {
            this.sagaConsumer.SagaFailedHandler = sagaFailedHandler;

            return(this);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Инициализирует новый экземпляр класса <see cref="SagaConsumerOf{TS,TM,TK}"/>.
 /// </summary>
 /// <param name="sagaLifecycle">Управляет жизненным циклом саги.</param>
 /// <param name="sagaStep">Обработчик шага саги.</param>
 /// <param name="canInitiate">Если <c>true</c> - тогда сага может быть создана обработчиком сообщения.</param>
 /// <param name="failedHandler">Обработчик ошибок в саге.</param>
 public SagaConsumerOf(ISagaLifecycle <TS, TM, TK> sagaLifecycle, ISagaStep <TS, TM, TK> sagaStep, bool canInitiate, ISagaFailedHandler <TS, TM, TK> failedHandler)
 {
     this.SagaLifecycle     = sagaLifecycle;
     this.SagaStep          = sagaStep;
     this.CanInitiate       = canInitiate;
     this.SagaFailedHandler = failedHandler;
 }