MassTransit by Chris Patterson

<PackageReference Include="MassTransit" Version="8.0.6" />

.NET API 3,343,360 bytes

 ExceptionActivityBinder<TSaga, TMessage, TException>

public interface ExceptionActivityBinder<TSaga, TMessage, TException> : EventActivities<TSaga> where TSaga : ISaga where TException : Exception
Event<TMessage> Event { get; }

StateMachine<TSaga> StateMachine { get; }

ExceptionActivityBinder<TSaga, TMessage, TException> Add(IStateMachineActivity<TSaga> activity)

ExceptionActivityBinder<TSaga, TMessage, TException> Add(IStateMachineActivity<TSaga, TMessage> activity)

ExceptionActivityBinder<TSaga, TMessage, TException> Catch<T>(Func<ExceptionActivityBinder<TSaga, TMessage, T>, ExceptionActivityBinder<TSaga, TMessage, T>> activityCallback) where T : Exception

Catch an exception and execute the compensating activities

ExceptionActivityBinder<TSaga, TMessage, TException> If(StateMachineExceptionCondition<TSaga, TMessage, TException> condition, Func<ExceptionActivityBinder<TSaga, TMessage, TException>, ExceptionActivityBinder<TSaga, TMessage, TException>> activityCallback)

Create a conditional branch of activities for processing

ExceptionActivityBinder<TSaga, TMessage, TException> IfAsync(StateMachineAsyncExceptionCondition<TSaga, TMessage, TException> condition, Func<ExceptionActivityBinder<TSaga, TMessage, TException>, ExceptionActivityBinder<TSaga, TMessage, TException>> activityCallback)

Create a conditional branch of activities for processing

ExceptionActivityBinder<TSaga, TMessage, TException> IfElse(StateMachineExceptionCondition<TSaga, TMessage, TException> condition, Func<ExceptionActivityBinder<TSaga, TMessage, TException>, ExceptionActivityBinder<TSaga, TMessage, TException>> thenActivityCallback, Func<ExceptionActivityBinder<TSaga, TMessage, TException>, ExceptionActivityBinder<TSaga, TMessage, TException>> elseActivityCallback)

Create a conditional branch of activities for processing

ExceptionActivityBinder<TSaga, TMessage, TException> IfElseAsync(StateMachineAsyncExceptionCondition<TSaga, TMessage, TException> condition, Func<ExceptionActivityBinder<TSaga, TMessage, TException>, ExceptionActivityBinder<TSaga, TMessage, TException>> thenActivityCallback, Func<ExceptionActivityBinder<TSaga, TMessage, TException>, ExceptionActivityBinder<TSaga, TMessage, TException>> elseActivityCallback)

Create a conditional branch of activities for processing