public override void Do(IOleUndoManager pUndoManager)
        {
#if DEBUGUNDOREDO
            Debug.WriteLine(">>> AddGroupRecord.Do");
#endif
            using (new ViewModel.ViewModelController.GuiChangeBlock(Controller))
            {
                ViewModel.Group newGroup = new ViewModel.Group(Controller, this);
                Controller.StateMachine.Groups.Add(newGroup);

                Controller.UndoManager.Add(new DeleteGroupRecord(Controller, newGroup));
            }
        }
        public override void Do(IOleUndoManager pUndoManager)
        {
#if DEBUGUNDOREDO
            Debug.WriteLine(">>> DeleteGroupRecord.Do");
#endif
            using (new ViewModel.ViewModelController.GuiChangeBlock(Controller))
            {
                ViewModel.Group targetGroup    = Controller.StateMachine.Groups.Where(s => s.Id == Id).First();
                AddGroupRecord  addGroupRecord = new AddGroupRecord(Controller, targetGroup);
                Controller.StateMachine.Groups.Remove(targetGroup);

                Controller.UndoManager.Add(addGroupRecord);
            }
        }
        internal DeleteGroupRecord(ViewModel.ViewModelController controller, ViewModel.Group group) : base(ActionTypes.AddEventType, controller, group)
        {
#if DEBUGUNDOREDO
            Debug.WriteLine($@">>> DeleteGroupRecord.DeleteGroupRecord: Created {UnitDescription} record, ID: {Id}, Name: {Name}");
#endif
        }