public FaultedScheduleActivity(AsyncEventExceptionMessageFactory <TInstance, TException, TMessage> messageFactory, Schedule <TInstance, TMessage> schedule, ScheduleTimeExceptionProvider <TInstance, TException> timeProvider, Action <SendContext <TMessage> > contextCallback) : this(schedule, timeProvider, contextCallback) { _asyncMessageFactory = messageFactory; }
public FaultedSendActivity(DestinationAddressProvider <TInstance> destinationAddressProvider, AsyncEventExceptionMessageFactory <TInstance, TException, TMessage> messageFactory, SendContextCallback <TInstance, TMessage> contextCallback) : this(messageFactory, contextCallback) { _destinationAddressProvider = destinationAddressProvider; }
public FaultedRequestActivity(Request <TInstance, TRequest, TResponse> request, AsyncEventExceptionMessageFactory <TInstance, TException, TRequest> messageFactory) : base(request) { _asyncMessageFactory = messageFactory; _serviceAddressProvider = context => request.Settings.ServiceAddress; }
public FaultedProduceActivity(ExceptionEventHubNameProvider <TInstance, TException> nameProvider, AsyncEventExceptionMessageFactory <TInstance, TException, TMessage> messageFactory, Action <EventHubSendContext <TMessage> > contextCallback) { _nameProvider = nameProvider; _asyncMessageFactory = messageFactory; _pipe = contextCallback != null?Pipe.Execute(contextCallback) : Pipe.Empty <EventHubSendContext <TMessage> >(); }
public static ExceptionActivityBinder <TInstance, TException> SendAsync <TInstance, TException, TMessage>( this ExceptionActivityBinder <TInstance, TException> source, AsyncEventExceptionMessageFactory <TInstance, TException, TMessage> messageFactory, Action <SendContext <TMessage> > contextCallback = null) where TInstance : class, SagaStateMachineInstance where TMessage : class where TException : Exception { return(source.Add(new FaultedSendActivity <TInstance, TException, TMessage>(messageFactory, contextCallback))); }
public static ExceptionActivityBinder <TInstance, TException> Schedule <TInstance, TException, TMessage>( this ExceptionActivityBinder <TInstance, TException> source, Schedule <TInstance, TMessage> schedule, AsyncEventExceptionMessageFactory <TInstance, TException, TMessage> messageFactory, ScheduleTimeExceptionProvider <TInstance, TException> timeProvider, Action <SendContext <TMessage> > contextCallback = null) where TInstance : class, SagaStateMachineInstance where TException : Exception where TMessage : class { return(source.Add(new FaultedScheduleActivity <TInstance, TException, TMessage>(messageFactory, schedule, timeProvider, contextCallback))); }
public static ExceptionActivityBinder <TInstance, TException> Produce <TInstance, TException, TMessage>( this ExceptionActivityBinder <TInstance, TException> source, ExceptionEventHubNameProvider <TInstance, TException> nameProvider, AsyncEventExceptionMessageFactory <TInstance, TException, TMessage> messageFactory, Action <EventHubSendContext <TMessage> > contextCallback = null) where TInstance : class, SagaStateMachineInstance where TMessage : class where TException : Exception { return(source.Add(new FaultedProduceActivity <TInstance, TException, TMessage>(nameProvider, messageFactory, contextCallback))); }
/// <summary> /// Send a request to the configured service endpoint, and setup the state machine to accept the response. /// </summary> /// <typeparam name="TInstance">The state instance type</typeparam> /// <typeparam name="TRequest">The request message type</typeparam> /// <typeparam name="TResponse">The response message type</typeparam> /// <typeparam name="TException"></typeparam> /// <param name="binder">The event binder</param> /// <param name="request">The configured request to use</param> /// <param name="messageFactory">The request message factory</param> /// <returns></returns> public static ExceptionActivityBinder <TInstance, TException> Request <TInstance, TException, TRequest, TResponse>( this ExceptionActivityBinder <TInstance, TException> binder, Request <TInstance, TRequest, TResponse> request, AsyncEventExceptionMessageFactory <TInstance, TException, TRequest> messageFactory) where TInstance : class, SagaStateMachineInstance where TRequest : class where TResponse : class where TException : Exception { ScheduleTokenId.UseTokenId <RequestTimeoutExpired <TRequest> >(x => x.RequestId); var activity = new FaultedRequestActivity <TInstance, TException, TRequest, TResponse>(request, messageFactory); return(binder.Add(activity)); }
public static ExceptionActivityBinder <TInstance, TData, TException> Schedule <TInstance, TData, TException, TMessage>( this ExceptionActivityBinder <TInstance, TData, TException> source, Schedule <TInstance, TMessage> schedule, AsyncEventExceptionMessageFactory <TInstance, TData, TException, TMessage> messageFactory, Action <SendContext <TMessage> > contextCallback = null) where TInstance : class, SagaStateMachineInstance where TData : class where TException : Exception where TMessage : class { DateTime TimeProvider(ConsumeExceptionEventContext <TInstance, TData, TException> context) { return(DateTime.UtcNow + schedule.Delay); } return(source.Add(new FaultedScheduleActivity <TInstance, TData, TException, TMessage>(messageFactory, schedule, TimeProvider, contextCallback))); }
public FaultedPublishActivity(AsyncEventExceptionMessageFactory <TInstance, TException, TMessage> messageFactory, Action <PublishContext <TMessage> > contextCallback) : this(contextCallback) { _asyncMessageFactory = messageFactory; }
public FaultedSendActivity(AsyncEventExceptionMessageFactory <TInstance, TException, TMessage> messageFactory, SendContextCallback <TInstance, TMessage> contextCallback) : this(contextCallback) { _asyncMessageFactory = messageFactory; }