Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }