|
@@ -2302,37 +2302,45 @@ class NCManageDatabase: NSObject {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @objc func getQueueUploadLock(selector: String) -> CCMetadataNet? {
|
|
|
+ @objc func getQueueUploadLock(selector: String, withPath: Bool) -> CCMetadataNet? {
|
|
|
|
|
|
guard let tableAccount = self.getAccountActive() else {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+ var result: tableQueueUpload?
|
|
|
+
|
|
|
let realm = try! Realm()
|
|
|
|
|
|
realm.beginWrite()
|
|
|
|
|
|
- guard let result = realm.objects(tableQueueUpload.self).filter("account = %@ AND selector = %@ AND lock == false", tableAccount.account, selector).sorted(byKeyPath: "date", ascending: true).first else {
|
|
|
+ if withPath {
|
|
|
+ result = realm.objects(tableQueueUpload.self).filter("account = %@ AND selector = %@ AND lock == false AND path != nil", tableAccount.account, selector).sorted(byKeyPath: "date", ascending: true).first
|
|
|
+ } else {
|
|
|
+ result = realm.objects(tableQueueUpload.self).filter("account = %@ AND selector = %@ AND lock == false", tableAccount.account, selector).sorted(byKeyPath: "date", ascending: true).first
|
|
|
+ }
|
|
|
+
|
|
|
+ if result == nil {
|
|
|
realm.cancelWrite()
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
let metadataNet = CCMetadataNet()
|
|
|
|
|
|
- metadataNet.account = result.account
|
|
|
- metadataNet.assetLocalIdentifier = result.assetLocalIdentifier
|
|
|
- metadataNet.directoryID = self.getDirectoryID(result.serverUrl)
|
|
|
- metadataNet.errorCode = result.errorCode
|
|
|
- metadataNet.fileName = result.fileName
|
|
|
- metadataNet.path = result.path
|
|
|
- metadataNet.selector = result.selector
|
|
|
- metadataNet.selectorPost = result.selectorPost
|
|
|
- metadataNet.serverUrl = result.serverUrl
|
|
|
- metadataNet.session = result.session
|
|
|
+ metadataNet.account = result!.account
|
|
|
+ metadataNet.assetLocalIdentifier = result!.assetLocalIdentifier
|
|
|
+ metadataNet.directoryID = self.getDirectoryID(result!.serverUrl)
|
|
|
+ metadataNet.errorCode = result!.errorCode
|
|
|
+ metadataNet.fileName = result!.fileName
|
|
|
+ metadataNet.path = result!.path
|
|
|
+ metadataNet.selector = result!.selector
|
|
|
+ metadataNet.selectorPost = result!.selectorPost
|
|
|
+ metadataNet.serverUrl = result!.serverUrl
|
|
|
+ metadataNet.session = result!.session
|
|
|
metadataNet.taskStatus = Int(k_taskStatusResume)
|
|
|
|
|
|
// Lock
|
|
|
- result.lock = true
|
|
|
+ result!.lock = true
|
|
|
|
|
|
do {
|
|
|
try realm.commitWrite()
|