예제 #1
0
        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));
        }
예제 #2
0
        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);
        }