public void DeleteObject(MockObject @object, bool pruneContainedDataObjects = false) { CheckLocked(); if (@object == null || @object.IsDeleted) { return; } Logger.Debug($"Deleting {@object.Uri(EtpVersion.v12)}"); var deleted = @object.Delete(StoreLastWrite, pruneContainedDataObjects: pruneContainedDataObjects); foreach (var parent in @object.Containers.Values) { Logger.Debug($"Updating container object {parent.Uri(EtpVersion.v12)}"); foreach (var grandParent in parent.Containers.Values) { Logger.Debug($"Updating container object {grandParent.Uri(EtpVersion.v12)}"); } } foreach (var deletedObject in deleted.Values) { @object.Dataspace.Objects.Remove(deletedObject.Uuid); @object.Dataspace.DeletedObjects[deletedObject.Uuid] = deletedObject; } RefreshAll(); }