Marino Faggiana 7 anni fa
parent
commit
44536026f1

+ 6 - 2
iOSClient/FileSystem/NCDatabase.swift

@@ -155,14 +155,18 @@ class tableMetadata: Object {
     dynamic var sessionID = ""
     dynamic var sessionSelector = ""
     dynamic var sessionSelectorPost = ""
-    dynamic var sessionTaskIdentifier : Int = 0
-    dynamic var sessionTaskIdentifierPlist : Int = 0
+    dynamic var sessionTaskIdentifier : Int = -1
+    dynamic var sessionTaskIdentifierPlist : Int = -1
     dynamic var size : Double = 0
     dynamic var thumbnailExists : Bool = false
     dynamic var title = ""
     dynamic var type = ""
     dynamic var typeFile = ""
     dynamic var uuid = ""
+    
+    override static func primaryKey() -> String {
+        return "etag"
+    }
 }
 
 class tableShare: Object {

+ 51 - 0
iOSClient/FileSystem/NCManageDatabase.swift

@@ -1119,5 +1119,56 @@ class NCManageDatabase: NSObject {
         return [sharesLink, sharesUserAndGroup]
     }
     
+    //MARK: -
+    //MARK: Table Metadata
+
+    func addMetadata(_ metadata: tableMetadata) {
+
+        let realm = try! Realm()
+        
+        try! realm.write {
+            
+            realm.add(metadata)
+        }
+    }
+    
+    func deleteMetadata(_ predicate: NSPredicate) {
+    
+        let realm = try! Realm()
+        
+        let results = realm.objects(tableMetadata.self).filter(predicate)
+        try! realm.write {
+            realm.delete(results)
+        }
+    }
+    
+    func moveMetadata(_ fileName: String, directoryID: String, directoryIDTo: String) {
+        
+        let tableAccount = self.getAccountActive()
+        if tableAccount == nil {
+            return
+        }
+        
+        let realm = try! Realm()
+    
+        let results = realm.objects(tableMetadata.self).filter("account = %@ AND fileName == %@ AND directoryID == %@", tableAccount!.account, fileName, directoryID)
+        
+        try! realm.write {
+            
+            for result in results {
+                result.directoryID = directoryIDTo
+            }
+        }
+    }
+    
+    func updateMetadata(_ metadata: tableMetadata) {
+        
+        let realm = try! Realm()
+        
+        try! realm.write {
+            realm.add(metadata, update: true)
+        }
+    }
+    
     //MARK: -
 }