Пример #1
0
        protected void DoCompleted(ILQHsmMemento memento)
        {
            HsmMementoCompleted handler = Completed;

            if (null != handler)
            {
                handler(this, memento);
            }
        }
Пример #2
0
        private void cmd_SaveCompleted(IQSimpleCommand command, ILQHsmMemento memento)
        {
            SaveCmd cmd = (SaveCmd)command;

            using (StreamWriter sw = new StreamWriter(cmd.FileName))
            {
                BinaryFormatter bf = new BinaryFormatter();
                bf.Serialize(sw.BaseStream, memento);
            }
        }
Пример #3
0
 public static void FillMementoWithStateName(ILQHsmMemento memento, Type hsmType, string currentStateName, object arg)
 {
     System.Reflection.MethodInfo methodInfo = hsmType.GetMethod ("S_" + currentStateName);
     if (methodInfo == null)
     {
         string msg = string.Format ("State name [{0}] not found in Hsm {1}/{2}", currentStateName, hsmType, arg);
         throw new InvalidOperationException (msg);
     }
     memento.CurrentStateMethod = methodInfo;
 }
Пример #4
0
 public void SpecialCase_RestoreHistoryStatesRelatedToCurrentState(ILQHsmMemento memento)
 {
     if (s_TimeKeeping_Date.Method == this.CurrentStateMethod)
     {
         _TimeKeeping_DeepHistory = s_TimeKeeping_Date;
     }
     else if (s_TimeKeeping_Time.Method == this.CurrentStateMethod)
     {
         _TimeKeeping_DeepHistory = s_TimeKeeping_Time;
     }
 }
Пример #5
0
 private void RestoreHsmFromFile()
 {
     using (StreamReader sr = new StreamReader(_StorageFileName))
     {
         BinaryFormatter bf      = new BinaryFormatter();
         object          obj     = bf.Deserialize(sr.BaseStream);
         ILQHsmMemento   memento = (ILQHsmMemento)obj;
         RestoreCmd      cmd     = new RestoreCmd(_Book, memento);
         cmd.Completed += new HsmMementoCompleted(cmd_RestoreCompleted);
         _Book.EventManager.AsyncDispatch(cmd);
     }
 }
Пример #6
0
 protected override void SaveHistoryStates(ILQHsmMemento memento)
 {
     base.SaveHistoryStates(memento);
     if (null == _TimeKeeping_DeepHistory)
     {
         memento.AddHistoryState("TimeKeeping", null);
     }
     else
     {
         memento.AddHistoryState("TimeKeeping", _TimeKeeping_DeepHistory.Method);
     }
 }
Пример #7
0
        protected override void RestoreHistoryStates(ILQHsmMemento memento)
        {
            base.RestoreHistoryStates(memento);
            IStateMethodInfo stateInfo_TimeKeeping = memento.GetHistoryStateFor("TimeKeeping");

            if (null == stateInfo_TimeKeeping)
            {
                _TimeKeeping_DeepHistory = null;
            }
            else
            {
                _TimeKeeping_DeepHistory = (QState)Delegate.CreateDelegate(typeof(QState), this, stateInfo_TimeKeeping.Method.Name);
            }
        }
Пример #8
0
        public void SaveToMemento(ILQHsmMemento memento)
        {
            ModelInformation modelInformation = this.ModelInformation;

            memento.ModelVersion = modelInformation.ModelVersion;
            memento.ModelGuid    = modelInformation.Guid;

            memento.Id           = this.Id;
            memento.GroupId      = this.GroupId;
            memento.CurrentState = this.CurrentState;

            SaveHistoryStates(memento);
            SaveFields(memento);
        }
Пример #9
0
        public void RestoreFromMemento(ILQHsmMemento memento)
        {
            ModelInformation modelInformation = this.ModelInformation;

            if (modelInformation.Guid != memento.ModelGuid)
            {
                string msg = string.Format("Hsm Guid [{0}] is not the same as contained by the Memento [{1}]", modelInformation.Guid, memento.ModelGuid);
                throw new InvalidOperationException(msg);
            }

            _UniqueName       = memento.Id;
            _GroupId          = memento.GroupId;
            this.CurrentState = memento.CurrentState;

            RestoreHistoryStates(memento);
            RestoreFields(memento);

            LogRestored();
        }
Пример #10
0
 protected virtual void SaveFields(ILQHsmMemento memento)
 {
 }
Пример #11
0
 public static void FillMementoWithStateName(ILQHsmMemento memento, ILQHsm hsm, string currentStateName)
 {
     FillMementoWithStateName (memento, hsm.GetType (), currentStateName, hsm);
 }
Пример #12
0
 public static void FillMementoWithStateName(ILQHsmMemento memento, ILQHsm hsm, string currentStateName)
 {
     memento.CurrentState.Name = currentStateName;
 }
Пример #13
0
 public RestoreCmd(ILQHsm hsm, ILQHsmMemento memento)
     : base(hsm)
 {
     _Memento = memento;
 }
Пример #14
0
 protected virtual void RestoreFields(ILQHsmMemento memento)
 {
 }
Пример #15
0
 protected virtual void RestoreHistoryStates(ILQHsmMemento memento)
 {
 }
Пример #16
0
 protected virtual void SaveFields(ILQHsmMemento memento)
 {
 }
Пример #17
0
 protected override void RestoreFields(ILQHsmMemento memento)
 {
     _DueDate = (DateTime)memento.GetFieldFor("DueDate").Value;
 }
Пример #18
0
 protected virtual void RestoreFields(ILQHsmMemento memento)
 {
 }
Пример #19
0
        public void SaveToMemento(ILQHsmMemento memento)
        {
            ModelInformation modelInformation = this.ModelInformation;
            memento.ModelVersion = modelInformation.ModelVersion;
            memento.ModelGuid = modelInformation.Guid;

            memento.Id = this.Id;
            memento.GroupId = this.GroupId;
            memento.CurrentStateMethod = this.CurrentStateMethod;

            SaveHistoryStates (memento);
            SaveFields (memento);
        }
Пример #20
0
        public void RestoreFromMemento(ILQHsmMemento memento)
        {
            ModelInformation modelInformation = this.ModelInformation;
            if (modelInformation.Guid != memento.ModelGuid)
            {
                string msg = string.Format ("Hsm Guid [{0}] is not the same as contained by the Memento [{1}]", modelInformation.Guid, memento.ModelGuid);
                throw new InvalidOperationException (msg);
            }

            _UniqueName = memento.Id;
            _GroupId = memento.GroupId;
            this.CurrentStateMethod = memento.CurrentStateMethod;

            RestoreHistoryStates (memento);
            RestoreFields (memento);

            LogRestored ();
        }
Пример #21
0
 private void cmd_RestoreCompleted(IQSimpleCommand command, ILQHsmMemento memento)
 {
     DoStateChange(_Book);
 }
Пример #22
0
 protected virtual void SaveHistoryStates(ILQHsmMemento memento)
 {
 }
Пример #23
0
 protected override void SaveFields(ILQHsmMemento memento)
 {
     memento.AddField("DueDate", _DueDate, typeof(DateTime));
 }