/// <summary> /// Synchronizes the with data dictionary. /// </summary> /// <param name="dataDict"> /// The data dictionary. /// </param> /// <returns> /// The <see cref="int"/>. /// </returns> public int SyncWithDataObject(DataModelSyncDeserializer dataDict) { bool isEnterprise = false; var licenseDef = dataDict.licenseInfo; if (licenseDef != null) { // DDLogCRequest("Import LICENSEINFO"); this.Logger.LogDebug("Import LICENSEINFO", LogFlag.LogRequests); Dictionary <string, object> licenseDefDictionary = licenseDef.ToDictionary(); isEnterprise = bool.Parse(licenseDefDictionary.ValueOrDefault("IsEnterpriseVersion").ToString()); #if PORTING NSUserDefaults.StandardUserDefaults().SetBoolForKey(isEnterprise.BoolValue, "System.isEnterprise"); NSUserDefaults.StandardUserDefaults().Synchronize(); #endif } var recordDef = dataDict.records; if (recordDef != null) { // DDLogCRequest("Import RECORDS"); this.Logger.LogDebug("Import RECORDS", LogFlag.LogRequests); var recordSyncResult = UPCRMRecordSync.SyncRecordSetDefinitionsCrmDataStore(recordDef, this.DataStore, isEnterprise); if (recordSyncResult.Successful) { this.RecordCount += recordSyncResult.RecordCount; } else { return(recordSyncResult.ReturnCode); } } return(0); }
/// <summary> /// Processes the json response. /// </summary> /// <param name="json"> /// The json. /// </param> /// <param name="remoteData"> /// The remote data. /// </param> public override void ProcessJsonSyncObject(DataModelSyncDeserializer json, RemoteData remoteData) { //this.Delegate?.OnFinishWithObjectResponse(this, json); }
/// <summary> /// Processes the json response. /// </summary> /// <param name="json"> /// The json. /// </param> /// <param name="remoteData"> /// The remote data. /// </param> public abstract void ProcessJsonSyncObject(DataModelSyncDeserializer json, RemoteData remoteData);
/// <summary> /// Called when [finish with response]. /// </summary> /// <param name="request"> /// The request. /// </param> /// <param name="json"> /// The json. /// </param> public void OnFinishWithObjectResponse(SyncRequestServerOperation request, DataModelSyncDeserializer json) { this.serverRequest = null; if (this.cancelled) { return; } var sync = new UPSynchronization(this.DataStore, this.ConfigStore); var ret = sync.SyncWithDataObject(json); var recordCount = 0; var changedRecordIdentifications = new List <string>(); var recordSyncArray1 = json.records; if (recordSyncArray1 != null) { foreach (var recordSyncObject in recordSyncArray1) { var recordSync = recordSyncObject; var dataSetName = recordSyncObject.datasetName; if (string.IsNullOrEmpty(dataSetName)) { continue; } var dataSet = this.ConfigStore.DataSetByName(dataSetName); if (dataSet == null) { continue; } var rowArray = recordSync.rows; if (rowArray == null) { continue; } recordCount += rowArray.Count; foreach (JArray row in rowArray) { var rowinfo = row.First() as JArray; var recordIdentification = StringExtensions.InfoAreaIdRecordId((string)rowinfo[0], (string)rowinfo[1]); changedRecordIdentifications.Add(recordIdentification); } } } if (ret > 0) { var errortext = $"storing records failed with errorcode #{ret}"; // NSError.ErrorWithDomainCodeUserInfo(errortext, ret, null); var error = new Exception(errortext); this.Delegate?.SyncDataSetsDidFail(this, error); } else { var recordSyncArray = json.records; if (recordSyncArray != null) { foreach (var recordSyncObject in recordSyncArray) { //var recordSync = recordSyncObject?.ToObject<Dictionary<string, object>>(); var dataSetName = recordSyncObject.datasetName; if (string.IsNullOrEmpty(dataSetName)) { continue; } var dataSet = this.ConfigStore.DataSetByName(dataSetName); if (string.IsNullOrEmpty(dataSet?.SyncDocumentFieldGroupName)) { continue; } var documentManager = new DocumentManager(); var rowArray = recordSyncObject.rows; if (rowArray == null) { continue; } foreach (JArray row in rowArray) { var rowinfo = row[0]; var recordIdentification = StringExtensions.InfoAreaIdRecordId((string)rowinfo[0], (string)rowinfo[1]); var syncDocument = new SyncDocument(recordIdentification, dataSet.SyncDocumentFieldGroupName, documentManager); if (this.DocumentsToSync == null) { this.DocumentsToSync = new List <SyncDocument> { syncDocument }; } else { this.DocumentsToSync.Add(syncDocument); } } } } this.TrackingDelegate.ClientFinishedWithRecordCount(recordCount); this.Delegate?.SyncDataSetsDidFinishSyncWithObject(this, json, changedRecordIdentifications); } }
/// <summary> /// Synchronizing the data sets did finish. /// </summary> /// <param name="sets"> /// The sets. /// </param> /// <param name="json"> /// The json. /// </param> /// <param name="changedRecordIdentifications"> /// The changed record identifications. /// </param> public void SyncDataSetsDidFinishSyncWithObject(UPSyncDataSets sets, DataModelSyncDeserializer json, List <string> changedRecordIdentifications) { }