/// <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); }
/// <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); }
/// <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); }
/// <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)); }