/// <summary> /// Registers a saga using the container that has the repository resolved from the container /// </summary> /// <typeparam name="T"></typeparam> /// <param name="configurator"></param> /// <param name="context"></param> /// <param name="name"></param> /// <returns></returns> public static void Saga <T>(this IReceiveEndpointConfigurator configurator, IComponentContext context, string name = "message") where T : class, ISaga { var sagaRepository = context.Resolve <ISagaRepository <T> >(); var autofacSagaRepository = new AutofacSagaRepository <T>(sagaRepository, context.Resolve <ILifetimeScope>(), name); configurator.Saga(autofacSagaRepository); }
/// <summary> /// Registers a saga using the container that has the repository resolved from the container /// </summary> /// <typeparam name="T"></typeparam> /// <param name="configurator"></param> /// <param name="scope"></param> /// <param name="configure"></param> /// <param name="name"></param> /// <returns></returns> public static void Saga <T>(this IReceiveEndpointConfigurator configurator, ILifetimeScope scope, Action <ISagaConfigurator <T> > configure, string name = "message") where T : class, ISaga { var sagaRepository = scope.Resolve <ISagaRepository <T> >(); var autofacSagaRepository = new AutofacSagaRepository <T>(sagaRepository, scope, name); configurator.Saga(autofacSagaRepository, configure); }
/// <summary> /// Registers a saga using the container that has the repository resolved from the container /// </summary> /// <typeparam name="TSaga"></typeparam> /// <param name="configurator"></param> /// <param name="scope"></param> /// <returns></returns> public static SagaSubscriptionConfigurator <TSaga> Saga <TSaga>( this SubscriptionBusServiceConfigurator configurator, ILifetimeScope scope, string name = "message") where TSaga : class, ISaga { var sagaRepository = scope.Resolve <ISagaRepository <TSaga> >(); var autofacSagaRepository = new AutofacSagaRepository <TSaga>(sagaRepository, scope, name); return(configurator.Saga(autofacSagaRepository)); }