public Task ExecuteFault <T>(EventContext <GatewaySagaState, T> context, Exception exception)
 {
     _bus.Publish(SagaMonitoringEventExtensions.FromEventExecution(context.Instance.CorrelationId, context.Instance.CurrentState, context.Event.Name, MonitoringEventType.ExecutionFaulted));
     return(Task.CompletedTask);
 }
 public Task StateChanged(InstanceContext <GatewaySagaState> context, State currentState, State previousState)
 {
     _bus.Publish(SagaMonitoringEventExtensions.FromStateTransition(context.Instance.CorrelationId, currentState, previousState));
     return(Task.CompletedTask);
 }
 public Task PostExecute <T>(EventContext <GatewaySagaState, T> context)
 {
     _bus.Publish(SagaMonitoringEventExtensions.FromEventExecution(context.Instance.CorrelationId, context.Instance.CurrentState, context.Event.Name, MonitoringEventType.PostExecute));
     return(Task.CompletedTask);
 }