Ejemplo n.º 1
0
        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();
        }