コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }