static public StepData SetSucceeded(this StepData data, SagaExecutionState state, IDateTimeProvider dateTimeProvider) { if (state.IsResuming) { data.ResumeData.SucceedTime = dateTimeProvider.Now; } else if (state.IsCompensating) { data.CompensationData.SucceedTime = dateTimeProvider.Now; } else { data.ExecutionData.SucceedTime = dateTimeProvider.Now; } return(data); }
static public StepData SetFailed(this StepData data, SagaExecutionState state, IDateTimeProvider dateTimeProvider, Exception error) { if (state.IsResuming) { data.ResumeData.Error = error.ToSagaStepException(); data.ResumeData.FailTime = dateTimeProvider.Now; } else if (state.IsCompensating) { data.CompensationData.Error = error.ToSagaStepException(); data.CompensationData.FailTime = dateTimeProvider.Now; } else { data.ExecutionData.Error = error.ToSagaStepException(); data.ExecutionData.FailTime = dateTimeProvider.Now; } return(data); }
internal static bool HasSucceeded(this StepData data) { return(data.ExecutionData?.SucceedTime != null); }
static internal StepData SetEndStateName(this StepData data, string currentState) { data.EndStateName = currentState; return(data); }
static internal StepData SetNextStepName(this StepData data, string stepName) { data.NextStepName = stepName; return(data); }