public async Task <string> CreateSagaId <FormType>(SimpleSaga <FormType> saga) where FormType : class, SagaData { var sagaId = Guid.NewGuid().ToString(); //sagaIdsStartTimes[sagaId] = DateTime.UtcNow; //sagaStates[sagaId] = SagaState.PROCESSING; var now = DateTime.UtcNow; var definition = saga.GetSagaDefinition(); try { var sagaInfo = new SagaInfo { SagaId = sagaId, State = SagaState.PROCESSING, FailTimes = 0, SagaCreateTime = now, LastProcessTime = now, Definition = definition }; _sagaInfos[sagaId] = sagaInfo; } catch (Exception e) { Console.WriteLine($"erro {e.Message}"); } return(sagaId); }
public SagaInfo Clone() { SagaInfo c = new SagaInfo(); c.SagaId = SagaId; c.State = State; c.FailTimes = FailTimes; c.SagaCreateTime = SagaCreateTime; c.LastProcessTime = LastProcessTime; c.Definition = Definition; return(c); }