/// <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); }
/// <inheritdoc /> public ISagaConfigurator <TS, TM, TK> OnSagaFailed(ISagaFailedHandler <TS, TM, TK> sagaFailedHandler) { this.sagaConsumer.SagaFailedHandler = sagaFailedHandler; return(this); }
/// <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; }