/// <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;
        }
Exemple #2
0
        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()));
        }
Exemple #3
0
        /// <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
     }
 }