public override ValueTask HandleEvent(ISagaStateData stateData, SagaFlowCreateEvent eventData, IEventContext eventContext) { var flowState = new SagaFlowState { Steps = eventData.Steps.ToArray(), StepStatuses = Enumerable .Repeat(StepStatus.NotStarted, eventData.Steps.Count) .ToArray(), CompensateSteps = eventData.CompensateSteps.ToArray(), CompensateStepStatuses = Enumerable .Repeat(StepStatus.NotStarted, eventData.CompensateSteps.Count) .ToArray(), IsCompensated = false, IsCompensating = false, IsCompleted = false, }; stateData.SagaFlowState = flowState; var userData = _sagaUserDataSerializer.Deserialize(eventData.UserData, eventData.UserDataType); stateData.SetUserData(userData); return(new ValueTask()); }
public Task RunAsync(int stepIndex, SagaFlowState flowState, object userData) { return(RunAsync(stepIndex, flowState, (TUserData)userData)); }
public abstract Task RunAsync(int stepIndex, SagaFlowState flowState, TUserData userData);