/// <summary> /// Build SyncTarget from json /// </summary> /// <param name="target"></param> /// <returns></returns> public new static SyncDownTarget FromJson(JObject target) { if (target == null) return null; var query = target.ExtractValue<string>(Constants.Query); SoqlSyncDownTarget ssdt = new SoqlSyncDownTarget(query); ssdt.setSkipGroupingParenthesis(target.ExtractValue<bool>("skipGroupingParenthesis")); return ssdt; }
public Models.SyncState SyncDown(SyncEvent syncEvent, string target, string soupName, Models.SyncOptions options) { var soqlsyncDownTarget = JObject.Parse(target); var soqlsyncDown = new SoqlSyncDownTarget(soqlsyncDownTarget); SyncDownTarget syncDown = soqlsyncDown; var syncOptions = options != null?SyncOptions.FromJson(JObject.Parse(JsonConvert.SerializeObject(options))) : null; var state = _syncManager.SyncDown(syncDown, soupName, syncEvent.OnSyncEventRaised, syncOptions); return(Models.SyncState.FromJson(state.AsJson().ToString())); }
/// <summary> /// Build SyncTarget from json /// </summary> /// <param name="target"></param> /// <returns></returns> public new static SyncDownTarget FromJson(JObject target) { if (target == null) { return(null); } var query = target.ExtractValue <string>(Constants.Query); SoqlSyncDownTarget ssdt = new SoqlSyncDownTarget(query); ssdt.setSkipGroupingParenthesis(target.ExtractValue <bool>("skipGroupingParenthesis")); return(ssdt); }
private long TrySyncDown(SyncState.MergeModeOptions mergeMode) { // Ids clause String idsClause = "('" + String.Join("', '", _idToNames.Keys) + "')"; // Create sync SyncDownTarget target = new SoqlSyncDownTarget("SELECT Id, Name, " + Constants.LastModifiedDate + " FROM Account WHERE Id IN " + idsClause); SyncOptions options = SyncOptions.OptionsForSyncDown(mergeMode); SyncState sync = SyncState.CreateSyncDown(_smartStore, target, AccountsSoup, options); long syncId = sync.Id; CheckStatus(sync, SyncState.SyncTypes.SyncDown, syncId, SyncState.SyncStatusTypes.New, 0, -1); // Run sync _syncCheck = 0; _syncManager.RunSync(sync, HandleSyncDownCheck); DateTime end = DateTime.Now.AddSeconds(60); while (_syncCheck < 3) { if (DateTime.Now > end) Assert.Fail("Sync timed out"); } return syncId; }
public void SyncDownContacts() { RegisterSoup(); if (syncId == -1) { string soqlQuery = SOQLBuilder.GetInstanceWithFields(ContactObject.ContactFields) .From(Constants.Contact) .Limit(Limit) .Build(); SyncOptions options = SyncOptions.OptionsForSyncDown(SyncState.MergeModeOptions.LeaveIfChanged); SyncDownTarget target = new SoqlSyncDownTarget(soqlQuery); try { SyncState sync = _syncManager.SyncDown(target, ContactSoup, HandleSyncUpdate); syncId = sync.Id; } catch (SmartStoreException) { // log here } } else { _syncManager.ReSync(syncId, HandleSyncUpdate); } }
public Models.SyncState SyncDown(string target, string soupName, string callback, Models.SyncOptions options) { var soqlsyncDownTarget = JObject.Parse(target); var soqlsyncDown = new SoqlSyncDownTarget(soqlsyncDownTarget); SyncDownTarget syncDown = soqlsyncDown; var action = JsonConvert.DeserializeObject<Action<SyncState>>(callback); var syncOptions = JsonConvert.SerializeObject(options); var state = _syncManager.SyncDown(syncDown, soupName, action, SyncOptions.FromJson(JObject.Parse(syncOptions))); var syncState = JsonConvert.SerializeObject(state); return JsonConvert.DeserializeObject<Models.SyncState>(syncState); }
public void SyncDownNotes() { RegisterSoup(); string soqlQuery = SOQLBuilder.GetInstanceWithFields(NoteObject.NoteFields) .From(NoteObject.NoteSObjectType) .Limit(Limit) .Build(); SyncOptions options = SyncOptions.OptionsForSyncDown(SyncState.MergeModeOptions.LeaveIfChanged); SyncDownTarget target = new SoqlSyncDownTarget(soqlQuery); try { SyncState sync = _syncManager.SyncDown(target, NotesSoup, HandleSyncUpdate, options); syncId = sync.Id; } catch (SmartStoreException) { // log here } }