Browse Source

remove function filesystem

Marino Faggiana 8 years ago
parent
commit
61f65f566d

+ 11 - 3
Picker/DocumentPickerViewController.swift

@@ -287,7 +287,7 @@ class DocumentPickerViewController: UIDocumentPickerExtensionViewController, CCN
         
         // remove all record
         var predicate = NSPredicate(format: "account = %@ AND directoryID = %@ AND session = ''", activeAccount!, metadataNet.directoryID!)
-        NCManageDatabase.sharedInstance.deleteMetadata(predicate)
+        NCManageDatabase.sharedInstance.deleteMetadata(predicate: predicate)
         
         for metadata in metadatas as! [tableMetadata] {
             
@@ -461,7 +461,15 @@ class DocumentPickerViewController: UIDocumentPickerExtensionViewController, CCN
             
         case selectorLoadPlist :
             
-            CCCoreData.downloadFilePlist(metadata, activeAccount: activeAccount, activeUrl: activeUrl,directoryUser: directoryUser)
+            var metadata = NCManageDatabase.sharedInstance.copyTableMetadata(self.metadata!)
+            metadata = CCUtility.insertInformationPlist(metadata, directoryUser: directoryUser)
+            
+            NCManageDatabase.sharedInstance.updateMetadata(metadata, activeUrl: activeUrl!)
+            
+            if metadata.type == k_metadataType_template {
+                NCManageDatabase.sharedInstance.setLocalFile(fileID: metadata.fileID, date: metadata.date, exifDate: nil, exifLatitude: nil, exifLongitude: nil, fileName: nil, fileNamePrint: metadata.fileNamePrint)
+            }
+            
             tableView.reloadData()
             
         default :
@@ -480,7 +488,7 @@ class DocumentPickerViewController: UIDocumentPickerExtensionViewController, CCN
         // remove file
         //CCCoreData.deleteMetadata(with: NSPredicate(format: "(account == '\(activeAccount!)') AND (fileID == '\(fileID)')"))
         let predicate = NSPredicate(format: "account = %@ AND fileID == %@", activeAccount!, fileID)
-        NCManageDatabase.sharedInstance.deleteMetadata(predicate)
+        NCManageDatabase.sharedInstance.deleteMetadata(predicate: predicate)
         
         if errorCode != -999 {
             

+ 1 - 1
Share Ext/ShareViewController.m

@@ -313,7 +313,7 @@
     
     // remove file 
     //[CCCoreData deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, _activeAccount]];
-    [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, _activeAccount]];
+    [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, _activeAccount]];
     
     [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, fileID] error:nil];
     [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, fileID] error:nil];

+ 33 - 6
iOSClient/Actions/CCActions.swift

@@ -136,7 +136,9 @@ class CCActions: NSObject {
         
         let metadata = NCManageDatabase.sharedInstance.getMetadataWithPreficate(NSPredicate(format: "fileID == %@", metadataNet.fileID))
         
-        CCCoreData.deleteFile(metadata, serverUrl: metadataNet.serverUrl, directoryUser: appDelegate.directoryUser, activeAccount: appDelegate.activeAccount)
+        if metadata != nil {
+            self.deleteFile(metadata: metadata!, serverUrl: metadataNet.serverUrl)
+        }
         
         metadataNet.delegate?.deleteFileOrFolderSuccess(metadataNet)
     }
@@ -147,7 +149,9 @@ class CCActions: NSObject {
             
             let metadata = NCManageDatabase.sharedInstance.getMetadataWithPreficate(NSPredicate(format: "fileID == %@", metadataNet.fileID))
             
-            CCCoreData.deleteFile(metadata, serverUrl: metadataNet.serverUrl, directoryUser: appDelegate.directoryUser, activeAccount: appDelegate.activeAccount)
+            if metadata != nil {
+                self.deleteFile(metadata: metadata!, serverUrl: metadataNet.serverUrl)
+            }
         }
 
         if message.length > 0 {
@@ -239,7 +243,7 @@ class CCActions: NSObject {
             appDelegate.addNetworkingOperationQueue(appDelegate.netQueue, delegate: self, metadataNet: metadataNet)
             
             // delete file in filesystem
-            CCCoreData.deleteFile(metadata, serverUrl: serverUrl, directoryUser: appDelegate.directoryUser, activeAccount: appDelegate.activeAccount)
+            self.deleteFile(metadata: metadata, serverUrl: serverUrl)
  
         } else {
  
@@ -450,11 +454,34 @@ class CCActions: NSObject {
         
         metadataNet.delegate?.listingFavoritesFailure(metadataNet, message: message, errorCode: errorCode)
     }
-
+    
+    // --------------------------------------------------------------------------------------------
+    // MARK: Utility
+    // --------------------------------------------------------------------------------------------
+    
+    func deleteFile(metadata: tableMetadata, serverUrl: String) {
+        
+        do {
+            try FileManager.default.removeItem(atPath: "\(appDelegate.directoryUser)/\(metadata.fileID)")
+        } catch {
+            // handle error
+        }
+        do {
+            try FileManager.default.removeItem(atPath: "\(appDelegate.directoryUser)/\(metadata.fileID).ico")
+        } catch {
+            // handle error
+        }
+        
+        if metadata.directory {
+            let dirForDelete = CCUtility.stringAppendServerUrl(serverUrl, addFileName: metadata.fileNameData)
+            NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: dirForDelete!)
+        }
+        
+        NCManageDatabase.sharedInstance.deleteLocalFile(predicate: NSPredicate(format: "fileID == %@", metadata.fileID))
+        NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "fileID == %@", metadata.fileID))
+    }
 }
 
 
 
 
-
-

+ 1 - 1
iOSClient/AppDelegate.m

@@ -1524,7 +1524,7 @@
         [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, fileID] error:nil];
         [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, fileID] error:nil];
         
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
     }
     else if ([[_listChangeTask objectForKey:fileID] isEqualToString:@"cancelDownload"]) {
         

+ 14 - 3
iOSClient/Favorites/CCSynchronize.m

@@ -110,7 +110,7 @@
             continue;
 
         // Reinsert
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@ AND session = ''", metadata.fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@ AND session = ''", metadata.fileID]];
         [[NCManageDatabase sharedInstance] addMetadata:metadata activeUrl:app.activeUrl];
         
         // insert for test NOT favorite
@@ -237,7 +237,18 @@
         // delete metadata not present
         for (tableMetadata *metadata in metadatasNotPresents) {
         
-            [CCCoreData deleteFile:metadata serverUrl:metadataNet.serverUrl directoryUser:app.directoryUser activeAccount:app.activeAccount];
+            [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.fileID] error:nil];
+            [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID] error:nil];
+            
+            if (metadata.directory && metadataNet.serverUrl) {
+                
+                NSString *dirForDelete = [CCUtility stringAppendServerUrl:metadataNet.serverUrl addFileName:metadata.fileNameData];
+                
+                [[NCManageDatabase sharedInstance] deleteDirectoryAndSubDirectoryWithServerUrl:dirForDelete];
+            }
+            
+            [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
+            [[NCManageDatabase sharedInstance] deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
         }
         
         dispatch_async(dispatch_get_main_queue(), ^{
@@ -343,7 +354,7 @@
     if (errorCode == 404 && [recordAccount.account isEqualToString:metadataNet.account]) {
         
         [[NCManageDatabase sharedInstance] deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadataNet.fileID]];
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID == %@", metadataNet.account, metadataNet.fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadataNet.account, metadataNet.fileID]];
         
         NSString *serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadataNet.directoryID];
         [app.activeMain reloadDatasource:serverUrl fileID:nil selector:nil];

+ 2 - 11
iOSClient/FileSystem/CCCoreData.h

@@ -143,19 +143,10 @@
 
 
 // ===== File System =====
-
+/*
 + (BOOL)downloadFile:(tableMetadata *)metadata directoryUser:(NSString *)directoryUser activeAccount:(NSString *)activeAccount;
 + (void)downloadFilePlist:(tableMetadata *)metadata activeAccount:(NSString *)activeAccount activeUrl:(NSString *)activeUrl directoryUser:(NSString *)directoryUser;
 + (void)deleteFile:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl directoryUser:(NSString *)directoryUser activeAccount:(NSString *)activeAccount;
+*/
 
-// ===== Utility Database =====
-
-+ (void)moveCoreDataToGroup;
-+ (void)moveAllUserToGroup;
-
-//+ (void)flushTableAccount:(NSString *)account;
-//+ (void)flushTableDirectoryAccount:(NSString *)account;
-//+ (void)flushTableLocalFileAccount:(NSString *)account;
-
-//+ (void)flushAllDatabase;
 @end

+ 4 - 39
iOSClient/FileSystem/CCCoreData.m

@@ -1192,7 +1192,7 @@
     return [tableMetadatas sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]];//[NSArray arrayWithArray:tableMetadatas];
 }
 */
-
+/*
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== File System =====
 #pragma --------------------------------------------------------------------------------------------
@@ -1224,7 +1224,7 @@
 {
     metadata = [[NCManageDatabase sharedInstance] copyTableMetadata:metadata];
     
-    [CCUtility insertInformationPlist:metadata directoryUser:directoryUser];    
+    metadata =  [CCUtility insertInformationPlist:metadata directoryUser:directoryUser];    
     [[NCManageDatabase sharedInstance] updateMetadata:metadata activeUrl:activeUrl];
     
     // se è un template aggiorniamo anche nel FileSystem
@@ -1253,43 +1253,8 @@
     }
     
     [self deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", metadata.fileID, activeAccount]];
-    [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", metadata.fileID, activeAccount]];
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Utility Database =====
-#pragma --------------------------------------------------------------------------------------------
-
-+ (void)moveCoreDataToGroup
-{
-    NSString *applicationName = [[[NSBundle mainBundle] infoDictionary] valueForKey:(NSString *)kCFBundleNameKey];
-    NSURL *dirGroup = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:[NCBrandOptions sharedInstance].capabilitiesGroups];
-    NSString *dirToPath = [[dirGroup URLByAppendingPathComponent:appDatabase] path];
-
-    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
-    NSString *dirFromPath = [[paths lastObject] stringByAppendingPathComponent:applicationName];
-    NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:dirFromPath error:nil];
-    NSError *error;
-    
-    for(NSString *filename in files)
-        [[NSFileManager defaultManager] moveItemAtPath:[dirFromPath stringByAppendingPathComponent:filename] toPath:[dirToPath stringByAppendingPathComponent:filename] error:&error];
-}
-
-+ (void)moveAllUserToGroup
-{    
-    NSArray *records = [TableAccount MR_findAll];
-
-    for (TableAccount *record in records) {
-                
-        NSString *dirFromPath = [CCUtility getOLDDirectoryActiveUser:record.user activeUrl:record.url];
-        NSString *dirToPath = [CCUtility getDirectoryActiveUser:record.user activeUrl:record.url];
-        
-        NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:dirFromPath error:nil];
-        NSError *error;
-
-        for(NSString *filename in files)
-            [[NSFileManager defaultManager] moveItemAtPath:[dirFromPath stringByAppendingPathComponent:filename] toPath:[dirToPath stringByAppendingPathComponent:filename] error:&error];        
-    }
+    [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", metadata.fileID, activeAccount]];
 }
+*/
 
 @end

+ 5 - 2
iOSClient/FileSystem/NCManageDatabase.swift

@@ -1170,7 +1170,7 @@ class NCManageDatabase: NSObject {
         self.setDateReadDirectory(directoryID: metadata.directoryID)
     }
     
-    func deleteMetadata(_ predicate: NSPredicate) {
+    func deleteMetadata(predicate: NSPredicate) {
     
         let tableAccount = self.getAccountActive()
         if tableAccount == nil {
@@ -1563,7 +1563,10 @@ class NCManageDatabase: NSObject {
             for result in results {
                 
                 // delete metadata
-                self.deleteMetadata(NSPredicate(format: "directoryID = %@", result.directoryID))
+                self.deleteMetadata(predicate: NSPredicate(format: "directoryID = %@", result.directoryID))
+                
+                // delete local file
+                self.deleteLocalFile(predicate: NSPredicate(format: "fileID = %@", result.fileID))
                 
                 /*
                 // remove if in session

+ 32 - 6
iOSClient/Main/CCMain.m

@@ -1339,11 +1339,23 @@
 
 - (void)downloadFileFailure:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, app.activeAccount]];
+    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
     
     // File do not exists on server, remove in local
     if (errorCode == kOCErrorServerPathNotFound || errorCode == kCFURLErrorBadServerResponse) {
-        [CCCoreData deleteFile:metadata serverUrl:serverUrl directoryUser:app.directoryUser activeAccount:app.activeAccount];
+        
+        [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, fileID] error:nil];
+        [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, fileID] error:nil];
+
+        if (metadata.directory && serverUrl) {
+            
+            NSString *dirForDelete = [CCUtility stringAppendServerUrl:serverUrl addFileName:metadata.fileNameData];
+            
+            [[NCManageDatabase sharedInstance] deleteDirectoryAndSubDirectoryWithServerUrl:dirForDelete];
+        }
+
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
     }
     
     if ([selector isEqualToString:selectorLoadViewImage]) {
@@ -1498,18 +1510,32 @@
     // download and view a template
     if ([selector isEqualToString:selectorLoadModelView]) {
         
-        [CCCoreData downloadFilePlist:metadata activeAccount:app.activeAccount activeUrl:app.activeUrl directoryUser:app.directoryUser];
+        metadata = [[NCManageDatabase sharedInstance] copyTableMetadata:metadata];
+        metadata = [CCUtility insertInformationPlist:metadata directoryUser:app.directoryUser];
+        [[NCManageDatabase sharedInstance] updateMetadata:metadata activeUrl:app.activeUrl];
         
-        [self openModel:metadata.model isNew:false];
+        // se è un template aggiorniamo anche nel FileSystem
+        if ([metadata.type isEqualToString: k_metadataType_template]) {
+            [[NCManageDatabase sharedInstance] setLocalFileWithFileID:metadata.fileID date:metadata.date exifDate:nil exifLatitude:nil exifLongitude:nil fileName:nil fileNamePrint:metadata.fileNamePrint];
+        }
         
+        [self openModel:metadata.model isNew:false];
+    
         [self reloadDatasource:serverUrl fileID:metadata.fileID selector:selector];
     }
     
     //download file plist
     if ([selector isEqualToString:selectorLoadPlist]) {
         
-        [CCCoreData downloadFilePlist:metadata activeAccount:app.activeAccount activeUrl:app.activeUrl directoryUser:app.directoryUser];
+        metadata = [[NCManageDatabase sharedInstance] copyTableMetadata:metadata];
+        metadata = [CCUtility insertInformationPlist:metadata directoryUser:app.directoryUser];
+        [[NCManageDatabase sharedInstance] updateMetadata:metadata activeUrl:app.activeUrl];
         
+        // se è un template aggiorniamo anche nel FileSystem
+        if ([metadata.type isEqualToString: k_metadataType_template]) {
+            [[NCManageDatabase sharedInstance] setLocalFileWithFileID:metadata.fileID date:metadata.date exifDate:nil exifLatitude:nil exifLongitude:nil fileName:nil fileNamePrint:metadata.fileNamePrint];
+        }
+
         long countSelectorLoadPlist = 0;
         
         for (NSOperation *operation in [app.netQueue operations]) {
@@ -1820,7 +1846,7 @@
         
         [[NCManageDatabase sharedInstance] updateDirectoryFileIDWithServerUrl:metadataNet.serverUrl fileID:fileID];
         
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"account = %@ AND directoryID = %@ AND session = ''", metadataNet.account, metadataNet.directoryID]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND directoryID = %@ AND session = ''", metadataNet.account, metadataNet.directoryID]];
         
         recordsInSessions = [[NCManageDatabase sharedInstance] getMetadatasWithPreficate:[NSPredicate predicateWithFormat:@"account = %@ AND directoryID = %@ AND session != ''", metadataNet.account, metadataNet.directoryID] sorted:nil ascending:NO];
 

+ 9 - 2
iOSClient/Move/CCMove.m

@@ -245,8 +245,15 @@
 
         tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
         
-        [CCCoreData downloadFilePlist:metadata activeAccount:activeAccount activeUrl:activeUrl directoryUser:directoryUser];
+        metadata = [[NCManageDatabase sharedInstance] copyTableMetadata:metadata];
+        metadata = [CCUtility insertInformationPlist:metadata directoryUser:directoryUser];
+        [[NCManageDatabase sharedInstance] updateMetadata:metadata activeUrl:activeUrl];
         
+        // se è un template aggiorniamo anche nel FileSystem
+        if ([metadata.type isEqualToString: k_metadataType_template]) {
+            [[NCManageDatabase sharedInstance] setLocalFileWithFileID:metadata.fileID date:metadata.date exifDate:nil exifLatitude:nil exifLongitude:nil fileName:nil fileNamePrint:metadata.fileNamePrint];
+        }
+
         [self.tableView reloadData];
     }
 }
@@ -275,7 +282,7 @@
 - (void)readFolderSuccess:(CCMetadataNet *)metadataNet permissions:(NSString *)permissions fileID:(NSString *)fileID metadatas:(NSArray *)metadatas
 {
     // remove all record
-    [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(account = %@) AND (directoryID = %@) AND (session = '')", activeAccount, metadataNet.directoryID]];
+    [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(account = %@) AND (directoryID = %@) AND (session = '')", activeAccount, metadataNet.directoryID]];
     
     for (tableMetadata *metadata in metadatas) {
         

+ 46 - 13
iOSClient/Networking/CCNetworking.m

@@ -325,7 +325,7 @@
     
     if (upload && taskStatus == k_taskStatusCancel) {
         
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(session CONTAINS 'upload')"]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(session CONTAINS 'upload')"]];
         
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             [CCUtility removeAllFileID_UPLOAD_ActiveUser:activeUser activeUrl:activeUrl];
@@ -704,7 +704,23 @@
         // DATA
         if ([CCUtility isCryptoString:fileName] || [CCUtility isFileNotCryptated:fileName]) {
             
-            [CCCoreData downloadFile:metadata directoryUser:_directoryUser activeAccount:_activeAccount];
+            BOOL error = false;
+            
+            // if encrypted, rewrite
+            if (metadata.cryptated == YES)
+                if ([[CCCrypto sharedManager] decrypt:metadata.fileID fileNameDecrypted:metadata.fileID fileNamePrint:metadata.fileNamePrint password:[[CCCrypto sharedManager] getKeyPasscode:metadata.uuid] directoryUser:_directoryUser] == 0)
+                    error = true;
+            
+            if (!error) {
+                
+                [[NCManageDatabase sharedInstance] addLocalFileWithMetadata:metadata];
+            
+                if ([metadata.typeFile isEqualToString: k_metadataTypeFile_image])
+                    [CCExifGeo setExifLocalTableEtag:metadata directoryUser:_directoryUser activeAccount:_activeAccount];
+
+                // Icon
+                [CCGraphics createNewImageFrom:metadata.fileID directoryUser:_directoryUser fileNameTo:metadata.fileID fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:NO typeFile:metadata.typeFile writePreview:YES optimizedFileName:[CCUtility getOptimizedPhoto]];
+            }
         }
         
         if ([[self getDelegate:fileID] respondsToSelector:@selector(downloadFileSuccess:serverUrl:selector:selectorPost:)])
@@ -877,7 +893,7 @@
     
         [CCUtility moveFileAtPath:[NSTemporaryDirectory() stringByAppendingString:fileName] toPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, fileName]];
         
-        [CCUtility insertInformationPlist:metadata directoryUser:_directoryUser];
+        metadata = [CCUtility insertInformationPlist:metadata directoryUser:_directoryUser];
         
         metadata.date = [NSDate new];
         metadata.fileID = uploadID;
@@ -907,7 +923,7 @@
             fileNameCrypto = fileName;      // file Name Crypto
             fileName = fileNameTemplate;    // file Name Print
             
-            [CCUtility insertInformationPlist:metadata directoryUser:_directoryUser];
+            metadata = [CCUtility insertInformationPlist:metadata directoryUser:_directoryUser];
             
             metadata.date = [NSDate new];
             metadata.fileID = uploadID;
@@ -1005,12 +1021,21 @@
                 UIAlertAction *overwriteAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"_overwrite_", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
                     
                     // -- remove record --
-                    //tableMetadata *metadataDelete = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileName == %@) AND (directoryID == %@)", _activeAccount, [fileNameCrypto stringByAppendingString:@".plist"], directoryID] context:nil];
                     
-                    tableMetadata *metadataDelete = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileName == %@) AND (directoryID == %@)", _activeAccount, [fileNameCrypto stringByAppendingString:@".plist"], directoryID]];
+                    tableMetadata *metadataDelete = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"account = %@ AND fileName = %@ AND directoryID = %@", _activeAccount, [fileNameCrypto stringByAppendingString:@".plist"], directoryID]];
                     
+                    [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, metadataDelete.fileID] error:nil];
+                    [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, metadataDelete.fileID] error:nil];
                     
-                    [CCCoreData deleteFile:metadataDelete serverUrl:serverUrl directoryUser:_directoryUser activeAccount:_activeAccount];
+                    if (metadataDelete.directory && serverUrl) {
+                        
+                        NSString *dirForDelete = [CCUtility stringAppendServerUrl:serverUrl addFileName:metadataDelete.fileNameData];
+                        
+                        [[NCManageDatabase sharedInstance] deleteDirectoryAndSubDirectoryWithServerUrl:dirForDelete];
+                    }
+                    
+                    [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadataDelete.fileID]];
+                    [[NCManageDatabase sharedInstance] deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadataDelete.fileID]];
                     
 #ifndef EXTENSION
                     [CCGraphics createNewImageFrom:fileName directoryUser:_directoryUser fileNameTo:uploadID fileNamePrint:fileName size:@"m" imageForUpload:YES typeFile:metadata.typeFile writePreview:YES optimizedFileName:NO];
@@ -1099,13 +1124,21 @@
             UIAlertAction *overwriteAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"_overwrite_", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
                 
                 // -- remove record --
-                //tableMetadata *metadataDelete = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileName == %@) AND (directoryID == %@)", _activeAccount, fileName, directoryID] context:nil];
+                tableMetadata *metadataDelete = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"account = %@ AND fileName = %@ AND directoryID = %@", _activeAccount, fileName, directoryID]];
                 
-                tableMetadata *metadataDelete = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileName == %@) AND (directoryID == %@)", _activeAccount, fileName, directoryID]];
+                [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, metadataDelete.fileID] error:nil];
+                [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, metadataDelete.fileID] error:nil];
                 
+                if (metadataDelete.directory && serverUrl) {
+                    
+                    NSString *dirForDelete = [CCUtility stringAppendServerUrl:serverUrl addFileName:metadataDelete.fileNameData];
+                    
+                    [[NCManageDatabase sharedInstance] deleteDirectoryAndSubDirectoryWithServerUrl:dirForDelete];
+                }
                 
-                [CCCoreData deleteFile:metadataDelete serverUrl:serverUrl directoryUser:_directoryUser activeAccount:_activeAccount];
-                
+                [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadataDelete.fileID]];
+                [[NCManageDatabase sharedInstance] deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadataDelete.fileID]];
+
                 // -- Go to Upload --
                 [CCGraphics createNewImageFrom:metadata.fileNamePrint directoryUser:_directoryUser fileNameTo:metadata.fileID fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:YES typeFile:metadata.typeFile writePreview:YES optimizedFileName:NO];
                 
@@ -1230,7 +1263,7 @@
             if ([[self getDelegate:sessionID] respondsToSelector:@selector(uploadFileFailure:fileID:serverUrl:selector:message:errorCode:)])
                 [[self getDelegate:sessionID] uploadFileFailure:nil fileID:sessionID serverUrl:serverUrl selector:selector message:NSLocalizedString(@"_file_not_present_", nil) errorCode:404];
             
-            [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(sessionID == %@) AND (account == %@)", sessionID, _activeAccount]];
+            [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(sessionID == %@) AND (account == %@)", sessionID, _activeAccount]];
             
         });
 
@@ -1381,7 +1414,7 @@
             metadata.sessionTaskIdentifier = k_taskIdentifierDone;
         
         [[NCManageDatabase sharedInstance] addMetadata:metadata activeUrl:_activeUrl];
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", sessionID]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", sessionID]];
     }
     
     // CRYPTO

+ 1 - 1
iOSClient/Settings/CCManageCryptoCloud.m

@@ -202,7 +202,7 @@
 
             // force reload all directory for all users and all metadata cryptated
             [[NCManageDatabase sharedInstance] setClearAllDateReadDirectory];
-            [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(cryptated == 1)"]];
+            [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(cryptated == 1)"]];
             
             UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"_info_", nil) message:NSLocalizedString(@"_alert_deactivation_crypto_cloud_", nil) delegate:nil cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"_ok_", nil), nil];
             [alertView show];

+ 1 - 1
iOSClient/Templates/CCAccountWeb.m

@@ -196,7 +196,7 @@
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
     
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }

+ 1 - 1
iOSClient/Templates/CCBancomat.m

@@ -203,7 +203,7 @@
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }

+ 1 - 1
iOSClient/Templates/CCCartaDiCredito.m

@@ -221,7 +221,7 @@
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }

+ 1 - 1
iOSClient/Templates/CCCartaIdentita.m

@@ -219,7 +219,7 @@
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }

+ 1 - 1
iOSClient/Templates/CCContoCorrente.m

@@ -219,7 +219,7 @@
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }

+ 1 - 1
iOSClient/Templates/CCNote.m

@@ -165,7 +165,7 @@
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }

+ 1 - 1
iOSClient/Templates/CCPassaporto.m

@@ -219,7 +219,7 @@
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }

+ 1 - 1
iOSClient/Templates/CCPatenteGuida.m

@@ -213,7 +213,7 @@
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }

+ 1 - 1
iOSClient/Utility/CCUtility.h

@@ -170,7 +170,7 @@
 + (tableMetadata *)trasformedOCFileToCCMetadata:(OCFileDto *)itemDto fileNamePrint:(NSString *)fileNamePrint serverUrl:(NSString *)serverUrl directoryID:(NSString *)directoryID cameraFolderName:(NSString *)cameraFolderName cameraFolderPath:(NSString *)cameraFolderPath activeAccount:(NSString *)activeAccount directoryUser:(NSString *)directoryUser;
 
 + (tableMetadata *)insertTypeFileIconName:(tableMetadata *)metadata directory:(NSString *)directory cameraFolderName:(NSString *)cameraFolderName cameraFolderPath:(NSString *)cameraFolderPath;
-+ (void)insertInformationPlist:(tableMetadata *)metadata directoryUser:(NSString *)directoryUser;
++ (tableMetadata *)insertInformationPlist:(tableMetadata *)metadata directoryUser:(NSString *)directoryUser;
 + (tableMetadata *)insertFileSystemInMetadata:(NSString *)fileName directory:(NSString *)directory activeAccount:(NSString *)activeAccount cameraFolderName:(NSString *)cameraFolderName cameraFolderPath:(NSString *)cameraFolderPath;
 
 + (NSString *)trasformedFileNamePlistInCrypto:(NSString *)fileName;

+ 5 - 3
iOSClient/Utility/CCUtility.m

@@ -935,7 +935,7 @@
     return metadata;
 }
 
-+ (void)insertInformationPlist:(tableMetadata *)metadata directoryUser:(NSString *)directoryUser
++ (tableMetadata *)insertInformationPlist:(tableMetadata *)metadata directoryUser:(NSString *)directoryUser
 {
     NSString *fileNamePlist, *temp, *passcode;
     NSError *error;
@@ -951,7 +951,7 @@
         if ([[NSFileManager defaultManager] fileExistsAtPath:temp]) fileNamePlist = temp;
     }
     
-    if (!fileNamePlist) return;
+    if (!fileNamePlist) return metadata;
     
     NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:fileNamePlist];
     NSString *title =  [data objectForKey:@"title"];
@@ -1023,6 +1023,8 @@
         if (!metadata.uuid) metadata.fileNamePrint = NSLocalizedString(@"_download_plist_", nil);
         else metadata.fileNamePrint = NSLocalizedString(@"_insert_password_", nil);
     }
+    
+    return metadata;
 }
 
 + (tableMetadata *)insertFileSystemInMetadata:(NSString *)fileName directory:(NSString *)directory activeAccount:(NSString *)activeAccount cameraFolderName:(NSString *)cameraFolderName cameraFolderPath:(NSString *)cameraFolderPath
@@ -1055,7 +1057,7 @@
     metadata.uuid = [CCUtility getUUID];
     
     if ([CCUtility isCryptoPlistString:fileName])
-        [CCUtility insertInformationPlist:metadata directoryUser:directory];
+        metadata = [CCUtility insertInformationPlist:metadata directoryUser:directory];
     
     [self insertTypeFileIconName:metadata directory:directory cameraFolderName:cameraFolderName cameraFolderPath:cameraFolderPath];