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); }
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)); }