/// <summary>
        /// Adds all sagas in the specified assemblies matching the namespace. If you are using both state machine and regular sagas, be
        /// sure to call AddSagaStateMachinesFromNamespaceContaining prior to calling this one.
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="type">The type to use to identify the assembly and namespace to scan</param>
        /// <param name="filter"></param>
        public static void AddSagaStateMachinesFromNamespaceContaining(this IServiceCollectionConfigurator configurator, Type type, Func <Type, bool> filter =
                                                                       null)
        {
            var registrar = new DependencyInjectionSagaStateMachineRegistrar(configurator.Collection);

            configurator.AddSagaStateMachinesFromNamespaceContaining(registrar, type, filter);
        }
Beispiel #2
0
        /// <summary>
        /// Add the state machine sagas in the specified assembly to the service collection
        /// </summary>
        /// <param name="collection"></param>
        public static void RegisterSagaStateMachine <TStateMachine, TInstance>(this IServiceCollection collection)
            where TStateMachine : class, SagaStateMachine <TInstance>
            where TInstance : class, SagaStateMachineInstance
        {
            var registrar = new DependencyInjectionSagaStateMachineRegistrar(collection);

            SagaStateMachineRegistrationCache.Register(typeof(TStateMachine), registrar);
        }
        /// <summary>
        /// Adds a SagaStateMachine to the registry, using the factory method, and updates the registrar prior to registering so that the default
        /// saga registrar isn't notified.
        /// </summary>
        /// <param name="configurator"></param>
        /// <typeparam name="TStateMachine"></typeparam>
        /// <typeparam name="TInstance"></typeparam>
        public static void AddSagaStateMachine <TStateMachine, TInstance>(this IServiceCollectionConfigurator configurator)
            where TStateMachine : class, SagaStateMachine <TInstance>
            where TInstance : class, SagaStateMachineInstance
        {
            var registrar = new DependencyInjectionSagaStateMachineRegistrar(configurator.Collection);

            configurator.AddSagaStateMachine <TStateMachine, TInstance>(registrar);
        }
Beispiel #4
0
        /// <summary>
        /// Add the state machine sagas by type
        /// </summary>
        /// <param name="collection"></param>
        /// <param name="types">If specified, only the specified assemblies are scanned</param>
        public static void RegisterSagaStateMachines(this IServiceCollection collection, params Type[] types)
        {
            var registrar = new DependencyInjectionSagaStateMachineRegistrar(collection);

            registrar.RegisterSagaStateMachines(types);
        }
Beispiel #5
0
        /// <summary>
        /// Add the state machine sagas in the specified assembly to the service collection
        /// </summary>
        /// <param name="collection"></param>
        /// <param name="type">The state machine saga type</param>
        public static void RegisterSagaStateMachine(this IServiceCollection collection, Type type)
        {
            var registrar = new DependencyInjectionSagaStateMachineRegistrar(collection);

            SagaStateMachineRegistrationCache.Register(type, registrar);
        }
        /// <summary>
        /// Adds SagaStateMachines to the registry, using the factory method, and updates the registrar prior to registering so that the default
        /// saga registrar isn't notified.
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="types">The state machine types to add</param>
        public static void AddSagaStateMachines(this IServiceCollectionConfigurator configurator, params Type[] types)
        {
            var registrar = new DependencyInjectionSagaStateMachineRegistrar(configurator.Collection);

            configurator.AddSagaStateMachines(registrar, types);
        }
        /// <summary>
        /// Adds all sagas in the specified assemblies matching the namespace. If you are using both state machine and regular sagas, be
        /// sure to call AddSagaStateMachinesFromNamespaceContaining prior to calling this one.
        /// </summary>
        /// <param name="configurator"></param>
        /// <typeparam name="T">The anchor type</typeparam>
        public static void AddSagaStateMachinesFromNamespaceContaining <T>(this IServiceCollectionConfigurator configurator)
        {
            var registrar = new DependencyInjectionSagaStateMachineRegistrar(configurator.Collection);

            configurator.AddSagaStateMachinesFromNamespaceContaining(registrar, typeof(T));
        }