CmisSync.Lib.Storage.Database.MetaDataStorage.RemoveObject C# (CSharp) Метод

RemoveObject() публичный Метод

Removes the saved object.
public RemoveObject ( IMappedObject obj ) : void
obj IMappedObject /// Object to be removed. ///
Результат void
        public void RemoveObject(IMappedObject obj) {
            string id = this.GetId(obj);
            using (var tran = this.engine.GetTransaction()) {
                MappedObject root = null;
                List<MappedObject> objects = new List<MappedObject>();
                foreach (var row in tran.SelectForward<string, DbCustomSerializer<MappedObject>>(MappedObjectsTable)) {
                    var value = row.Value;
                    if (value == null) {
                        continue;
                    }

                    var data = value.Get;
                    if (data == null) {
                        continue;
                    }

                    if (row.Key.Equals(id)) {
                        root = data;
                    } else {
                        objects.Add(data);
                    }
                }

                if (root == null) {
                    return;
                }

                this.RemoveChildren(tran, root, ref objects);

                tran.RemoveKey<string>(MappedObjectsTable, id);
                tran.RemoveKey<byte[]>(MappedObjectsGuidsTable, root.Guid.ToByteArray());
                tran.Commit();
            }

            this.ValidateObjectStructureIfFullValidationIsEnabled();
        }

Usage Example

Пример #1
0
        public void RemoveObjectDoesNotTouchParents([Values(true, false)]bool withValidation) {
            string remoteId = "remoteId";
            string childId = "childId";
            string subChildId = "subchildId";
            var storage = new MetaDataStorage(this.engine, this.matcher, withValidation);
            var obj = new MappedObject("name", remoteId, MappedObjectType.Folder, null, null);
            var child = new MappedObject("child", childId, MappedObjectType.Folder, remoteId, null);
            var subchild = new MappedObject("subchild", subChildId, MappedObjectType.File, childId, null);
            storage.SaveMappedObject(obj);
            storage.SaveMappedObject(child);
            storage.SaveMappedObject(subchild);

            storage.RemoveObject(child);

            Assert.That(storage.GetObjectByRemoteId(remoteId), Is.EqualTo(obj));
            Assert.That(storage.GetObjectByRemoteId(childId), Is.Null);
            Assert.That(storage.GetObjectByRemoteId(subChildId), Is.Null);
        }
All Usage Examples Of CmisSync.Lib.Storage.Database.MetaDataStorage::RemoveObject