public virtual IMementoEx GetSnapshot() { var clone = _state.Clone(); EventUnfolderMemento memento = new EventUnfolderMemento(); memento.Id = this.Id; memento.Version = this.Version; memento.Payload = clone; memento.Signature = this.Signature; return(memento); }
private String InnerValidateMemento(IMementoEx memento) { if (!(memento is EventUnfolderMemento)) { return("Cannot restore Projector from type " + memento.GetType() + " expecting EventUnfolderSnapshot."); } EventUnfolderMemento eventUnfolderMemento = (EventUnfolderMemento)memento; if (eventUnfolderMemento.Payload.GetType() != typeof(TQueryModel)) { return("Payload of the memento is expected to be of type " + typeof(TQueryModel) + " but it is of type " + eventUnfolderMemento.Payload.GetType()); } if (eventUnfolderMemento.Signature != this.Signature) { return("Memento has wrong signature [" + eventUnfolderMemento + "] unfolder signature is " + Signature); } return(String.Empty); }