From 66f7e49e065129871c13a904f64831bd28c4435f Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Tue, 27 Aug 2013 07:42:22 +0000
Subject: [PATCH] SP-823 / BIS-500: Sync Fix in progress, maybe needs rollback.

SVN: 29676
---
 .../objc/BisKit/Classes/CISDOBIpadService.h   |   5 ++-
 .../objc/BisKit/Classes/CISDOBIpadService.m   |  20 ++++++++++-
 .../BisKit/Classes/CISDOBIpadServiceManager.h |   7 +++-
 .../BisKit/Classes/CISDOBIpadServiceManager.m |  31 +++++++++++-------
 .../contents                                  |   4 +--
 .../UserInterfaceState.xcuserstate            | Bin 38480 -> 51741 bytes
 .../objc/openBIS/openBIS/CISDOBAppDelegate.m  |  15 +++++++++
 7 files changed, 66 insertions(+), 16 deletions(-)

diff --git a/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadService.h b/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadService.h
index 3ca714ac9cd..1b6903cd9ff 100644
--- a/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadService.h
+++ b/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadService.h
@@ -63,7 +63,10 @@ id ObjectFromJsonData(NSString *jsonDataString, NSError **error);
 - (CISDOBAsyncCall *)listNavigationalEntities;
 
 //! Get all root-level entities from the openBIS ipad service for the specified navigational entities. This should return all the entities associated with that navigational entity that are considered part of the root set. The success block will be invoked with a collection of CISDOBIpadRawEntity objects.
-- (CISDOBAsyncCall *)listRootLevelEntities:(NSArray *)permIds refcons:(NSArray *)refcons;
+//- (CISDOBAsyncCall *)listRootLevelEntities:(NSArray *)permIds refcons:(NSArray *)refcons;
+
+//! Get all root-level entities from the openBIS ipad service for the specified navigational entities. This should return all the entities associated with that navigational entity that are considered part of the root set. Only returns objects that have changed since the date. The success block will be invoked with a collection of CISDOBIpadRawEntity objects.
+- (CISDOBAsyncCall *)listChangesSince:(NSDate *)lastUpdateDate rootLevelEntity:(NSArray *)permIds refcons:(NSArray *)refcons;
 
 //! Get drill information from the openBIS ipad service -- this will include information about the children of the entity and possibly their children as well. The permIds and refcons collections must have the same cardinality. The success block will be invoked with a collection of CISDOBIpadRawEntity objects.
 - (CISDOBAsyncCall *)drillOnEntities:(NSArray *)permIds refcons:(NSArray *)refcons;
diff --git a/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadService.m b/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadService.m
index 622a76cbe37..7f7b04ce9e4 100644
--- a/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadService.m
+++ b/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadService.m
@@ -166,7 +166,7 @@ id ObjectFromJsonData(NSString *jsonDataString, NSError **error)
     CISDOBIpadServiceCall *serviceCall = [self createIpadServiceCallWithParameters: parameters];
     return serviceCall;
 }
-
+/*
 - (CISDOBAsyncCall *)listRootLevelEntities:(NSArray *)permIds refcons:(NSArray *)refcons
 {
     NSUInteger count = [permIds count];
@@ -182,6 +182,24 @@ id ObjectFromJsonData(NSString *jsonDataString, NSError **error)
     if (serviceCall.timeoutInterval < 60.) serviceCall.timeoutInterval = 60.;
     return serviceCall;
 }
+*/
+- (CISDOBAsyncCall *)listChangesSince:(NSDate *)lastUpdateDate rootLevelEntity:(NSArray *)permIds refcons:(NSArray *)refcons
+{
+    NSUInteger count = [permIds count];
+    NSAssert([refcons count] == count, @"Drilling requires permIds and refcons. There must be an equal number of these.");
+    NSArray *entities;
+    entities = [self convertToEntitiesPermIds: permIds refcons: refcons count: count];
+    NSDictionary *parameters =
+        [NSDictionary dictionaryWithObjectsAndKeys:
+            @"ROOT", @"requestKey",
+            entities, @"entities",
+            [NSString stringWithFormat: @"%f", [lastUpdateDate timeIntervalSince1970]], @"lastupdate", nil];
+    CISDOBIpadServiceCall *serviceCall = [self createIpadServiceCallWithParameters: parameters];
+    // Make sure the timeout interval is at least 60s
+    if (serviceCall.timeoutInterval < 60.) serviceCall.timeoutInterval = 60.;
+    return serviceCall;
+
+}
 
 - (NSArray *)convertToEntitiesPermIds:(NSArray *)permIds refcons:(NSArray *)refcons count:(NSUInteger)count
 {
diff --git a/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManager.h b/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManager.h
index 08cca814155..4334e753dd0 100644
--- a/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManager.h
+++ b/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManager.h
@@ -71,6 +71,8 @@ typedef void (^AuthenticationChallengeBlock)(CISDOBAsyncCall *call, NSURLAuthent
 
 typedef void (^MocSaveBlock)(CISDOBIpadServiceManager *serviceManager, NSArray *deletedEntityPermIds);
 
+typedef void (^MocPostSaveBlock)(CISDOBIpadServiceManager *serviceManager);
+
 
 
 /**
@@ -90,7 +92,7 @@ typedef void (^MocSaveBlock)(CISDOBIpadServiceManager *serviceManager, NSArray *
 @property (readonly) NSOperationQueue *queue;
 @property (readonly) NSString *sessionToken;
 @property (nonatomic, getter=isOnline) BOOL online;
-@property (nonatomic, getter=isSyncDone) BOOL syncDone;
+@property (getter=isSyncDone) BOOL syncDone;
 
 @property(strong, nonatomic) NSDate *lastRootSetUpdateDate;
 
@@ -100,6 +102,9 @@ typedef void (^MocSaveBlock)(CISDOBIpadServiceManager *serviceManager, NSArray *
 //! Called before the service manager saves the managed object context which will delete the entities with the deletedEntityPermIds
 @property (copy, nonatomic) MocSaveBlock mocSaveBlock;
 
+//! Called after the service manager successfully saves the managed object context
+@property (copy, nonatomic) MocPostSaveBlock mocPostSaveBlock;
+
 
 // Initialization
 - (id)initWithStoreUrl:(NSURL *)storeUrl openbisUrl:(NSURL *)openbisUrl trusted:(BOOL)trusted error:(NSError **)error;
diff --git a/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManager.m b/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManager.m
index fb6b3a3553f..cfa3e7b29a5 100644
--- a/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManager.m
+++ b/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManager.m
@@ -164,7 +164,11 @@ static NSManagedObjectContext* GetMainThreadManagedObjectContext(NSURL* storeUrl
 - (BOOL)saveManagedObjectContextDeleting:(NSArray *)deletedEntities error:(NSError **)error
 {
     if (self.mocSaveBlock) self.mocSaveBlock(self, deletedEntities);
-    return [self.managedObjectContext save: error];
+    BOOL success = [self.managedObjectContext save: error];
+    if (success) {
+        if (self.mocPostSaveBlock) self.mocPostSaveBlock(self);
+    }
+    return success;
 }
 
 - (void)pruneEntitiesNotifying:(CISDOBIpadServiceManagerCall *)managerCall
@@ -319,13 +323,14 @@ static NSManagedObjectContext* GetMainThreadManagedObjectContext(NSURL* storeUrl
     CISDOBAsyncCall *call = [self.service listNavigationalEntities];
     
     CISDOBIpadServiceManagerCall *managerCall = [[CISDOBIpadServiceManagerCall alloc] initWithServiceManager: self serviceCall: call];
+    // Save the update date to be the time the call is constructed (i.e., before the call is made)
+    NSDate *timeOfCallConstruction = [NSDate date];
     
     __weak CISDOBIpadServiceManager *weakSelf = self;
     
     call.success = ^(id result) {
         weakSelf.online = YES;
-        // Update the set update date
-        weakSelf.lastRootSetUpdateDate = [NSDate date];
+        self.lastRootSetUpdateDate = timeOfCallConstruction;
         CISDOBIpadServiceManagerRetrieveRootSetCommand *command = [[CISDOBIpadServiceManagerRetrieveRootSetCommand alloc] init];
         command.serviceManager = weakSelf;
         command.serviceManagerCall = managerCall;
@@ -651,12 +656,16 @@ static NSManagedObjectContext* GetMainThreadManagedObjectContext(NSURL* storeUrl
     NSError *error;
     // Remove entities that were not updated since the prune cutoff date
     // Remove all entities that were not mentioned
-    NSFetchRequest *fetchRequest = [self.serviceManager fetchRequestForEntitiesNotUpdatedSince: self.pruneCutoffDate];
-    NSArray *entitiesToDelete = [self.managedObjectContext executeFetchRequest: fetchRequest error: &error];
-    for (CISDOBIpadEntity *entity in entitiesToDelete) {
-        [(NSMutableArray *)_deletedEntityPermIds addObject: entity.permId];
-        [self.managedObjectContext deleteObject: entity];
-    }
+    
+    // TODO Do not pune any more (change still in progress...)
+//    NSFetchRequest *fetchRequest = [self.serviceManager fetchRequestForEntitiesNotUpdatedSince: self.pruneCutoffDate];
+//    NSArray *entitiesToDelete = [self.managedObjectContext executeFetchRequest: fetchRequest error: &error];
+//    for (CISDOBIpadEntity *entity in entitiesToDelete) {
+//        [(NSMutableArray *)_deletedEntityPermIds addObject: entity.permId];
+//        [self.managedObjectContext deleteObject: entity];
+//    }
+    
+    // Could be an issue -- synchDone variable not updated in the main thread
     self.serviceManager.syncDone = YES;
     [[NSNotificationCenter defaultCenter] postNotificationName: CISDOBIpadServiceDidSynchPruningEntitiesNotification object: self];
     success = [self.managedObjectContext save: &error];
@@ -809,7 +818,7 @@ static NSManagedObjectContext* GetMainThreadManagedObjectContext(NSURL* storeUrl
 
     NSArray *permIds = [NSArray arrayWithObject: navEntity.permId];
     NSArray *refcons = [NSArray arrayWithObject: navEntity.refcon];
-    CISDOBAsyncCall *call = [self.serviceManager.service listRootLevelEntities: permIds refcons: refcons];
+    CISDOBAsyncCall *call = [self.serviceManager.service listChangesSince: self.serviceManager.lastRootSetUpdateDate rootLevelEntity: permIds refcons: refcons];
     call.success = ^(id result) {
         [self.serviceManager syncEntities: result notifying: nil];
         if (currentIndex+1 == count) {
@@ -831,7 +840,7 @@ static NSManagedObjectContext* GetMainThreadManagedObjectContext(NSURL* storeUrl
         // listRootLevelEntites without arguments
         NSArray *permIds = [NSArray array];
         NSArray *refcons = [NSArray array];
-        CISDOBAsyncCall *call = [self.serviceManager.service listRootLevelEntities: permIds refcons: refcons];
+        CISDOBAsyncCall *call = [self.serviceManager.service listChangesSince: self.serviceManager.lastRootSetUpdateDate rootLevelEntity: permIds refcons: refcons];
     
         call.success = ^(id result) {
            [self.serviceManager syncEntities: result notifying: nil];
diff --git a/openbis-ipad/source/objc/BisKit/Classes/persistent-data-model.xcdatamodeld/persistent-data-model.xcdatamodel/contents b/openbis-ipad/source/objc/BisKit/Classes/persistent-data-model.xcdatamodeld/persistent-data-model.xcdatamodel/contents
index 4d2005a5341..faff8ff020e 100644
--- a/openbis-ipad/source/objc/BisKit/Classes/persistent-data-model.xcdatamodeld/persistent-data-model.xcdatamodel/contents
+++ b/openbis-ipad/source/objc/BisKit/Classes/persistent-data-model.xcdatamodeld/persistent-data-model.xcdatamodel/contents
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<model name="" userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="1811" systemVersion="11G56" minimumToolsVersion="Xcode 4.3" macOSVersion="Automatic" iOSVersion="Automatic">
+<model name="" userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="2057" systemVersion="12D78" minimumToolsVersion="Xcode 4.3" macOSVersion="Automatic" iOSVersion="Automatic">
     <entity name="CISDOBIpadEntity" representedClassName="CISDOBIpadEntity" syncable="YES">
         <attribute name="category" optional="YES" attributeType="String" indexed="YES" syncable="YES"/>
         <attribute name="childrenPermIds" optional="YES" transient="YES" syncable="YES"/>
@@ -22,6 +22,6 @@
     <fetchRequest name="EntityAndChildren" entity="CISDOBIpadEntity" predicateString="SELF == $ENTITY OR permId IN $CHILDREN" fetchBatchSize="20"/>
     <fetchRequest name="RootEntities" entity="CISDOBIpadEntity" predicateString="rootLevel == 0" fetchBatchSize="20"/>
     <elements>
-        <element name="CISDOBIpadEntity" positionX="0" positionY="0" width="0" height="0"/>
+        <element name="CISDOBIpadEntity" positionX="0" positionY="0" width="128" height="270"/>
     </elements>
 </model>
\ No newline at end of file
diff --git a/openbis-ipad/source/objc/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/juanf.xcuserdatad/UserInterfaceState.xcuserstate b/openbis-ipad/source/objc/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/juanf.xcuserdatad/UserInterfaceState.xcuserstate
index 0fe81a140016828bf27d26df9fa19bcf4b2c51ab..b8286a113b469be908e8cc4a096977a566d8d7be 100644
GIT binary patch
literal 51741
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

literal 38480
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
Zx+Gc^UGra)iHVJU;BH4B_<u&L{{<L=%}oFR

diff --git a/openbis-ipad/source/objc/openBIS/openBIS/CISDOBAppDelegate.m b/openbis-ipad/source/objc/openBIS/openBIS/CISDOBAppDelegate.m
index 10e77f1eb6c..e9fcc8a22a4 100644
--- a/openbis-ipad/source/objc/openBIS/openBIS/CISDOBAppDelegate.m
+++ b/openbis-ipad/source/objc/openBIS/openBIS/CISDOBAppDelegate.m
@@ -55,6 +55,8 @@ NSURL *StoreUrlFromOpenbisUrl(NSURL *applicationDocumentsDirectory, NSURL *openb
 
 - (NSString *)username { return [[NSUserDefaults standardUserDefaults] stringForKey: @"openbis_username"]; }
 - (NSString *)password { return [[NSUserDefaults standardUserDefaults] stringForKey: @"openbis_password"]; }
+- (NSDate *)lastUpdatedDate { return [[NSUserDefaults standardUserDefaults] objectForKey: @"last_updated_date"]; }
+
 - (NSURL *)openbisUrl {
     NSString *urlString = [[NSUserDefaults standardUserDefaults] stringForKey: @"openbis_server_url"];
     return [NSURL URLWithString: urlString];
@@ -68,6 +70,11 @@ NSURL *StoreUrlFromOpenbisUrl(NSURL *applicationDocumentsDirectory, NSURL *openb
 {
     return [[NSUserDefaults standardUserDefaults] setObject: password forKey: @"openbis_password"];
 }
+- (void)setLastUpdatedDate:(NSDate *)lastUpdatedDate
+{
+    return [[NSUserDefaults standardUserDefaults] setObject: lastUpdatedDate forKey: @"last_updated_date"];
+}
+
 - (void)setOpenbisUrl:(NSURL *)openbisUrl
 {
     return [[NSUserDefaults standardUserDefaults] setObject: [openbisUrl absoluteString] forKey: @"openbis_server_url"];
@@ -274,6 +281,10 @@ NSURL *StoreUrlFromOpenbisUrl(NSURL *applicationDocumentsDirectory, NSURL *openb
         if (!_serviceManager) return NO;
     }
     
+    // Initialize the lastUpdateDate of the service manager from the stored state
+    NSDate* lastUpdatedDate = [self lastUpdatedDate];
+    _serviceManager.lastRootSetUpdateDate = lastUpdatedDate;
+    
     // Use a weak reference to self in blocks to avoid retain cycles
     __weak CISDOBAppDelegate *weakSelf = self;
     _serviceManager.authenticationChallengeBlock = ^(CISDOBAsyncCall *call, NSURLAuthenticationChallenge *challenge) {
@@ -282,6 +293,10 @@ NSURL *StoreUrlFromOpenbisUrl(NSURL *applicationDocumentsDirectory, NSURL *openb
     _serviceManager.mocSaveBlock = ^(CISDOBIpadServiceManager *serviceManager, NSArray *deletedEntityPermIds) {
         [weakSelf serviceManager: serviceManager willSaveDeletingEntities: deletedEntityPermIds];
     };
+    _serviceManager.mocPostSaveBlock = ^(CISDOBIpadServiceManager *serviceManager) {
+        // Update the lastUpdateDate to the time the service manager was created
+        [weakSelf setLastUpdatedDate: serviceManager.lastRootSetUpdateDate];
+    };
     
     return YES;
 }
-- 
GitLab