public override void CompensateActivityConfigured <TActivity, TLog>(ICompensateActivityConfigurator <TActivity, TLog> configurator) { var scopeProvider = new AutofacCompensateActivityScopeProvider <TActivity, TLog>(_scopeProvider, _name, _configureScope); var scopeFilter = new ScopeCompensateFilter <TActivity, TLog>(scopeProvider); var specification = new FilterPipeSpecification <CompensateContext <TLog> >(scopeFilter); configurator.Log(x => x.AddPipeSpecification(specification)); }
public static void CompensateActivityHost <TActivity, TLog>(this IReceiveEndpointConfigurator configurator, ILifetimeScope lifetimeScope, string name = "message") where TActivity : class, CompensateActivity <TLog> where TLog : class { var lifetimeScopeProvider = new SingleLifetimeScopeProvider(lifetimeScope); var compensateActivityScopeProvider = new AutofacCompensateActivityScopeProvider <TActivity, TLog>(lifetimeScopeProvider, name); var factory = new ScopeCompensateActivityFactory <TActivity, TLog>(compensateActivityScopeProvider); var specification = new CompensateActivityHostSpecification <TActivity, TLog>(factory); configurator.AddEndpointSpecification(specification); }