/// <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> UseSagaIdSeparator(ISagaIdSeparator <TM, TK> sagaIdSeparator) { this.sagaLifecycle.SagaIdSeparator = sagaIdSeparator; return(this); }
/// <summary> /// Инициализирует новый экземпляр класса <see cref="DefaultSagaLifecycle{TS,TM,TK}"/>. /// </summary> /// <param name="repository">Хранилище временного состояния саги.</param> /// <param name="separator">Вычислитель идентификатора саги из сообщения.</param> /// <param name="factory">Фабрика создающая сагу.</param> public DefaultSagaLifecycle(ISagaRepository <TS, TK> repository, ISagaIdSeparator <TM, TK> separator, ISagaFactory <TS, TK> factory) { this.SagaRepository = repository; this.SagaIdSeparator = separator; this.SagaFactory = factory; }