/// <summary> /// Initializes a new instance. /// </summary> /// <param name="requestTokenFactory"></param> /// <param name="exceptionFactory"></param> /// <param name="contextCallback"></param> public FaultedToActivity(AsyncRequestTokenFactory <TInstance, TData, TRequest> requestTokenFactory, AsyncExceptionFactory <TInstance, TData, TRequest> exceptionFactory, Action <SendContext <FaultEvent <TRequest> > > contextCallback) { this.requestTokenFactory = requestTokenFactory ?? throw new ArgumentNullException(nameof(requestTokenFactory)); this.exceptionFactory = exceptionFactory ?? throw new ArgumentNullException(nameof(exceptionFactory)); this.contextCallback = contextCallback; }
/// <summary> /// Responds to a stored request with a fault. /// </summary> /// <typeparam name="TInstance"></typeparam> /// <typeparam name="TData"></typeparam> /// <typeparam name="TRequest"></typeparam> /// <param name="source"></param> /// <param name="requestTokenFactory"></param> /// <param name="exceptionFactory"></param> /// <param name="contextCallback"></param> /// <returns></returns> public static EventActivityBinder <TInstance, TData> FaultedToAsync <TInstance, TData, TRequest>(this EventActivityBinder <TInstance, TData> source, AsyncRequestTokenFactory <TInstance, TData, TRequest> requestTokenFactory, AsyncExceptionFactory <TInstance, TData, TRequest> exceptionFactory, Action <SendContext <FaultEvent <TRequest> > > contextCallback = null) where TInstance : class, SagaStateMachineInstance where TData : class where TRequest : class { return(source.Add(new FaultedToActivity <TInstance, TData, TRequest>(requestTokenFactory, exceptionFactory, contextCallback))); }