Browse Source

Modify database

Marino Faggiana 8 years ago
parent
commit
1193ec3735

+ 3 - 0
iOSClient/AppDelegate.m

@@ -1387,6 +1387,9 @@
         
         
         [CCCoreData clearAllDateReadDirectory];
         [CCCoreData clearAllDateReadDirectory];
         [CCCoreData flushTableMetadataAccount:nil];
         [CCCoreData flushTableMetadataAccount:nil];
+        
+        [CCCoreData localTableCopyFavoriteToOffline];
+        [CCCoreData directoryTableCopySynchronizedToOffline];
     }
     }
 }
 }
 
 

+ 5 - 0
iOSClient/FileSystem/CCCoreData.h

@@ -206,6 +206,11 @@
 + (void)insertMetadataInEntity:(CCMetadata *)metadata recordMetadata:(TableMetadata *)recordMetadata activeAccount:(NSString *)activeAccount activeUrl:(NSString *)activeUrl typeCloud:(NSString *)typeCloud;
 + (void)insertMetadataInEntity:(CCMetadata *)metadata recordMetadata:(TableMetadata *)recordMetadata activeAccount:(NSString *)activeAccount activeUrl:(NSString *)activeUrl typeCloud:(NSString *)typeCloud;
 + (CCMetadata *)insertEntityInMetadata:(TableMetadata *)recordMetadata;
 + (CCMetadata *)insertEntityInMetadata:(TableMetadata *)recordMetadata;
 
 
+// ===== Routine for migrate =====
+
++ (void)localTableCopyFavoriteToOffline;
++ (void)directoryTableCopySynchronizedToOffline;
+
 // ===== Utility Database =====
 // ===== Utility Database =====
 
 
 + (void)moveCoreDataToGroup;
 + (void)moveCoreDataToGroup;

+ 36 - 0
iOSClient/FileSystem/CCCoreData.m

@@ -1897,6 +1897,42 @@
     return metadata;
     return metadata;
 }
 }
 
 
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark ===== Routine for migrate =====
+#pragma --------------------------------------------------------------------------------------------
+
++ (void)localTableCopyFavoriteToOffline
+{
+    [MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *localContext) {
+        
+        NSArray *records = [TableLocalFile MR_findAllInContext:localContext];
+        
+        for (TableLocalFile *record in records) {
+            
+            if ([record.favorite isEqualToNumber:[NSNumber numberWithInt:1]]) {
+                record.favorite = [NSNumber numberWithInteger:0];
+                record.offline = [NSNumber numberWithInteger:1];
+            }
+        }
+    }];
+}
+
++ (void)directoryTableCopySynchronizedToOffline
+{
+    [MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *localContext) {
+        
+        NSArray *records = [TableDirectory MR_findAllInContext:localContext];
+        
+        for (TableDirectory *record in records) {
+            
+            if ([record.synchronized isEqualToNumber:[NSNumber numberWithInt:1]]) {
+                record.synchronized = [NSNumber numberWithInteger:0];
+                record.offline = [NSNumber numberWithInteger:1];
+            }
+        }
+    }];
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Utility Database =====
 #pragma mark ===== Utility Database =====
 #pragma --------------------------------------------------------------------------------------------
 #pragma --------------------------------------------------------------------------------------------

+ 2 - 0
iOSClient/FileSystem/TableDirectory+CoreDataProperties.h

@@ -32,8 +32,10 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nullable, nonatomic, retain) NSDate *dateReadDirectory;
 @property (nullable, nonatomic, retain) NSDate *dateReadDirectory;
 @property (nullable, nonatomic, retain) NSDate *dateRecord;
 @property (nullable, nonatomic, retain) NSDate *dateRecord;
 @property (nullable, nonatomic, retain) NSString *directoryID;
 @property (nullable, nonatomic, retain) NSString *directoryID;
+@property (nullable, nonatomic, retain) NSNumber *favorite;
 @property (nullable, nonatomic, retain) NSString *fileID;
 @property (nullable, nonatomic, retain) NSString *fileID;
 @property (nullable, nonatomic, retain) NSNumber *lock;
 @property (nullable, nonatomic, retain) NSNumber *lock;
+@property (nullable, nonatomic, retain) NSNumber *offline;
 @property (nullable, nonatomic, retain) NSString *permissions;
 @property (nullable, nonatomic, retain) NSString *permissions;
 @property (nullable, nonatomic, retain) NSString *rev;
 @property (nullable, nonatomic, retain) NSString *rev;
 @property (nullable, nonatomic, retain) NSString *serverUrl;
 @property (nullable, nonatomic, retain) NSString *serverUrl;

+ 2 - 0
iOSClient/FileSystem/TableDirectory+CoreDataProperties.m

@@ -30,8 +30,10 @@
 @dynamic dateReadDirectory;
 @dynamic dateReadDirectory;
 @dynamic dateRecord;
 @dynamic dateRecord;
 @dynamic directoryID;
 @dynamic directoryID;
+@dynamic favorite;
 @dynamic fileID;
 @dynamic fileID;
 @dynamic lock;
 @dynamic lock;
+@dynamic offline;
 @dynamic permissions;
 @dynamic permissions;
 @dynamic rev;
 @dynamic rev;
 @dynamic serverUrl;
 @dynamic serverUrl;

+ 3 - 1
iOSClient/cryptocloud.xcdatamodeld/cryptocloud 7.xcdatamodel/contents

@@ -48,8 +48,10 @@
         <attribute name="dateReadDirectory" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
         <attribute name="dateReadDirectory" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
         <attribute name="dateRecord" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
         <attribute name="dateRecord" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
         <attribute name="directoryID" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="directoryID" optional="YES" attributeType="String" syncable="YES"/>
+        <attribute name="favorite" optional="YES" attributeType="Boolean" usesScalarValueType="NO" syncable="YES"/>
         <attribute name="fileID" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="fileID" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="lock" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="NO" syncable="YES"/>
         <attribute name="lock" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="NO" syncable="YES"/>
+        <attribute name="offline" optional="YES" attributeType="Boolean" usesScalarValueType="NO" syncable="YES"/>
         <attribute name="permissions" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="permissions" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="rev" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="rev" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="serverUrl" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="serverUrl" optional="YES" attributeType="String" syncable="YES"/>
@@ -127,7 +129,7 @@
         <element name="TableAccount" positionX="-6174" positionY="153" width="171" height="420"/>
         <element name="TableAccount" positionX="-6174" positionY="153" width="171" height="420"/>
         <element name="TableAutomaticUpload" positionX="-5967" positionY="306" width="128" height="180"/>
         <element name="TableAutomaticUpload" positionX="-5967" positionY="306" width="128" height="180"/>
         <element name="TableCertificates" positionX="-5976" positionY="297" width="128" height="75"/>
         <element name="TableCertificates" positionX="-5976" positionY="297" width="128" height="75"/>
-        <element name="TableDirectory" positionX="-5465" positionY="426" width="128" height="210"/>
+        <element name="TableDirectory" positionX="-5465" positionY="426" width="128" height="240"/>
         <element name="TableGPS" positionX="-5609" positionY="243" width="128" height="180"/>
         <element name="TableGPS" positionX="-5609" positionY="243" width="128" height="180"/>
         <element name="TableLocalFile" positionX="-5472" positionY="153" width="135" height="240"/>
         <element name="TableLocalFile" positionX="-5472" positionY="153" width="135" height="240"/>
         <element name="TableMetadata" positionX="-5949" positionY="162" width="162" height="525"/>
         <element name="TableMetadata" positionX="-5949" positionY="162" width="162" height="525"/>