private void RecordModels(UndoRedoRecorder recorder) { if (model.InPorts.Count == 0) { return; } var connectors = model.InPorts.Last().Connectors; if (connectors.Count != 0) { if (connectors.Count != 1) { throw new InvalidOperationException( "There should be only one connection to an input port"); } var models = new Dictionary <ModelBase, UndoRedoRecorder.UserAction> { { connectors[0], UndoRedoRecorder.UserAction.Deletion }, { model, UndoRedoRecorder.UserAction.Modification } }; WorkspaceModel.RecordModelsForUndo(models, recorder); } else { WorkspaceModel.RecordModelForModification(model, recorder); } }
private void RecordUndoModels(WorkspaceModel workspace, List <ModelBase> undoItems, List <ModelBase> deletedItems) { var userActionDictionary = new Dictionary <ModelBase, UndoRedoRecorder.UserAction>(); //Add models that were newly created foreach (var undoItem in undoItems) { userActionDictionary.Add(undoItem, UndoRedoRecorder.UserAction.Creation); } //Add models that were newly deleted foreach (var deletedItem in deletedItems) { userActionDictionary.Add(deletedItem, UndoRedoRecorder.UserAction.Deletion); } WorkspaceModel.RecordModelsForUndo(userActionDictionary, workspace.UndoRecorder); }