コード例 #1
0
 /// <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;
 }
コード例 #2
0
 /// <summary>
 /// Responds to the previosly captured request token.
 /// </summary>
 /// <typeparam name="TInstance"></typeparam>
 /// <typeparam name="TData"></typeparam>
 /// <typeparam name="TRequest"></typeparam>
 /// <typeparam name="TResponse"></typeparam>
 /// <param name="source"></param>
 /// <param name="requestTokenFactory"></param>
 /// <param name="messageFactory"></param>
 /// <param name="contextCallback"></param>
 /// <returns></returns>
 public static EventActivityBinder <TInstance, TData> RespondToAsync <TInstance, TData, TRequest, TResponse>(this EventActivityBinder <TInstance, TData> source, AsyncRequestTokenFactory <TInstance, TData, TRequest> requestTokenFactory, AsyncEventMessageFactory <TInstance, TData, TResponse> messageFactory, Action <SendContext <TResponse> > contextCallback = null)
     where TInstance : class, SagaStateMachineInstance
     where TData : class
     where TRequest : class
     where TResponse : class
 {
     return(source.Add(new RespondToActivity <TInstance, TData, TRequest, TResponse>(requestTokenFactory, messageFactory, contextCallback)));
 }
コード例 #3
0
 /// <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="exception"></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, Exception exception, 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, context => Task.FromResult(exception), contextCallback)));
 }
コード例 #4
0
 /// <summary>
 /// Initializes a new instance.
 /// </summary>
 /// <param name="requestTokenFactory"></param>
 /// <param name="messageFactory"></param>
 /// <param name="contextCallback"></param>
 public RespondToActivity(AsyncRequestTokenFactory <TInstance, TData, TRequest> requestTokenFactory, AsyncEventMessageFactory <TInstance, TData, TResponse> messageFactory, Action <SendContext <TResponse> > contextCallback)
 {
     this.requestTokenFactory = requestTokenFactory ?? throw new ArgumentNullException(nameof(requestTokenFactory));
     this.messageFactory      = messageFactory ?? throw new ArgumentNullException(nameof(messageFactory));
     this.contextCallback     = contextCallback;
 }