ObjectWrapperUndoRedoChange ApplyDiff(string id, object diff) { // Console.WriteLine ("** APPLYING DIFF: uid:" + id); // PrintPatch (diff); ObjectWrapper ww = rootObject.FindObjectByUndoId(id); if (ww == null) { Console.WriteLine("Object with undo id '{0}' not found", id); return(null); } object reverseDiff = ww.ApplyUndoRedoDiff(diff); if (reverseDiff != null) { // Console.WriteLine ("** REVERSE DIFF:"); // PrintPatch (reverseDiff); ObjectWrapperUndoRedoChange change = new ObjectWrapperUndoRedoChange(this, id, reverseDiff); return(change); } else { return(null); } }