示例#1
0
        public static SagaDataAggregate <TSagaData> FromSnapshot(IMemento m)
        {
            Snapshot s = m as Snapshot;

            if (s == null)
            {
                throw new WrongSnapshotTypeReceivedException(m.GetType(), typeof(Snapshot));
            }
            var sagaDataAggregate = new SagaDataAggregate <TSagaData>(s.Id, s.Data)
            {
                Version = s.Version
            };

            ((IAggregate)sagaDataAggregate).ClearUncommittedEvents();
            return(sagaDataAggregate);
        }
示例#2
0
 public static SagaInstance <TSaga, TSagaData> New <TSaga, TSagaData>(TSaga saga, SagaDataAggregate <TSagaData> data)
     where TSaga : Saga <TSagaData>
     where TSagaData : class, ISagaState
 {
     return(new SagaInstance <TSaga, TSagaData>(saga, data));
 }