Пример #1
0
        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());
        }
Пример #2
0
 public Task RunAsync(int stepIndex, SagaFlowState flowState, object userData)
 {
     return(RunAsync(stepIndex, flowState, (TUserData)userData));
 }
Пример #3
0
 public abstract Task RunAsync(int stepIndex, SagaFlowState flowState, TUserData userData);