Beispiel #1
0
        public AutofacCompensateActivityFactory(ILifetimeScope lifetimeScope, string name, Action <ContainerBuilder, CompensateContext <TLog> > configureScope)
        {
            var lifetimeScopeProvider = new SingleLifetimeScopeProvider(lifetimeScope);

            var compensateActivityScopeProvider = new AutofacCompensateActivityScopeProvider <TActivity, TLog>(lifetimeScopeProvider, name, configureScope);

            _factory = new ScopeCompensateActivityFactory <TActivity, TLog>(compensateActivityScopeProvider);
        }
        public CompensateActivityHostSpecification(ICompensateActivityFactory <TActivity, TLog> activityFactory, IActivityConfigurationObserver observer)
        {
            _activityFactory = activityFactory;

            _activityPipeConfigurator   = new PipeConfigurator <CompensateActivityContext <TActivity, TLog> >();
            _compensatePipeConfigurator = new PipeConfigurator <CompensateContext <TLog> >();
            _routingSlipConfigurator    = new RoutingSlipConfigurator();
            _observers = new ActivityConfigurationObservable();

            _observers.Connect(observer);
        }
Beispiel #3
0
        public ActivityService(IConfigurationProvider configuration, IActivityQueueNameProvider queueNameProvider,
                               IExecuteActivityFactory <TActivity, TArguments> executeActivityFactory, ICompensateActivityFactory <TActivity, TLog> compensateActivityFactory)
        {
            _executeActivityFactory    = executeActivityFactory;
            _compensateActivityFactory = compensateActivityFactory;

            _activityName = GetActivityName();

            _executeQueueName     = queueNameProvider.GetExecuteActivityQueueName(_activityName);
            _executeConsumerLimit = GetExecuteConsumerLimit(configuration);

            _compensateQueueName     = queueNameProvider.GetCompensateActivityQueueName(_activityName);
            _compensateConsumerLimit = GetCompensateConsumerLimit(configuration);
        }
Beispiel #4
0
        public static void CompensateActivityHost <TActivity, TLog>(this IReceiveEndpointConfigurator configurator,
                                                                    ICompensateActivityFactory <TActivity, TLog> factory, Action <ICompensateActivityConfigurator <TActivity, TLog> > configure = null)
            where TActivity : class, ICompensateActivity <TLog>
            where TLog : class
        {
            if (configurator == null)
            {
                throw new ArgumentNullException(nameof(configurator));
            }

            if (factory == null)
            {
                throw new ArgumentNullException(nameof(factory));
            }

            LogContext.Debug?.Log("Configuring Compensate Activity: {ActivityType}, {LogType}", TypeMetadataCache <TActivity> .ShortName,
                                  TypeMetadataCache <TLog> .ShortName);

            var specification = new CompensateActivityHostSpecification <TActivity, TLog>(factory, configurator);

            configure?.Invoke(specification);

            configurator.AddEndpointSpecification(specification);
        }
Beispiel #5
0
 public FactoryMethodActivityFactory(Func <TArguments, TActivity> executeFactory,
                                     Func <TLog, TActivity> compensateFactory)
 {
     _executeFactory    = new FactoryMethodExecuteActivityFactory <TActivity, TArguments>(executeFactory);
     _compensateFactory = new FactoryMethodCompensateActivityFactory <TActivity, TLog>(compensateFactory);
 }
 public CompensateActivityFactoryFilter(ICompensateActivityFactory <TActivity, TLog> factory, IPipe <CompensateActivityContext <TActivity, TLog> > pipe)
 {
     _factory = factory;
     _pipe    = pipe;
 }