예제 #1
0
        public static TSaga Create <TSaga>(
            SagaId id,
            SagaContextId contextId,
            LocalDateTime startedOn,
            LocalDateTime nextProcessingTimeDueOn,
            LocalDateTime?nextRetryTime,
            bool isExpired,
            bool isCompleted) where TSaga : Saga
        {
            var instance = Create <TSaga>(id);

            instance.ContextId = contextId;
            instance.StartedOn = startedOn;
            instance.NextProcessingTimeDueOn = nextProcessingTimeDueOn;
            instance.NextRetryTime           = nextRetryTime;
            instance.IsExpired   = isExpired;
            instance.IsCompleted = isCompleted;
            return(instance);
        }
예제 #2
0
        public static Saga Create(
            Type sagaType,
            SagaId id,
            SagaContextId contextId,
            LocalDateTime startedOn,
            LocalDateTime nextProcessingTimeDueOn,
            LocalDateTime?nextRetryTime,
            bool isExpired,
            bool isCompleted)
        {
            var instance = Create(sagaType, id);

            instance.ContextId = contextId;
            instance.StartedOn = startedOn;
            instance.NextProcessingTimeDueOn = nextProcessingTimeDueOn;
            instance.NextRetryTime           = nextRetryTime;
            instance.IsExpired   = isExpired;
            instance.IsCompleted = isCompleted;
            return(instance);
        }
예제 #3
0
        public static Saga Create(
            string typeName,
            SagaId id,
            SagaContextId contextId,
            LocalDateTime startedOn,
            LocalDateTime nextProcessingTimeDueOn,
            LocalDateTime?nextRetryTime,
            bool isExpired,
            bool isCompleted)
        {
#if NET45
            var instance = (Saga)Activator.CreateInstance(null, typeName).Unwrap();
#else
            var instance = (Saga)Activator.CreateInstance(null, typeName);
#endif
            SetPropertyValue(instance, "Id", id);
            instance.ContextId = contextId;
            instance.StartedOn = startedOn;
            instance.NextProcessingTimeDueOn = nextProcessingTimeDueOn;
            instance.NextRetryTime           = nextRetryTime;
            instance.IsExpired   = isExpired;
            instance.IsCompleted = isCompleted;
            return(instance);
        }