Exemplo n.º 1
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()));
        }
 public static SyncOptions FromJson(JObject options)
 {
     if (options == null)
         return null;
     var mergeModeStr = options.ExtractValue<string>(Constants.MergeMode);
     var mergeMode = String.IsNullOrWhiteSpace(mergeModeStr)
         ? SyncState.MergeModeOptions.None
         : (SyncState.MergeModeOptions) Enum.Parse(typeof (SyncState.MergeModeOptions), mergeModeStr);
     var array = options.ExtractValue<JArray>(Constants.FieldList);
     SyncOptions so = new SyncOptions(array.ToObject<List<string>>(), mergeMode);
     array = options.ExtractValue<JArray>("fieldsToExcludeOnUpdate");
     so.setFieldsToExcludeOnUpdate(array.ToObject<List<string>>());
     return so;
 }
 /// <summary>
 ///     Create sync state in database for a sync down and return corresponding SyncState
 /// </summary>
 /// <param name="store"></param>
 /// <param name="target"></param>
 /// <param name="options"></param>
 /// <param name="soupName"></param>
 /// <returns></returns>
 public static SyncState CreateSyncDown(SmartStore.Store.SmartStore store, SyncDownTarget target, string soupName, SyncOptions options = null)
 {
     var sync = new JObject
     {
         {Constants.SyncType, SyncTypes.SyncDown.ToString()},
         {Constants.SyncTarget, target.AsJson()},
         {Constants.SyncSoupName, soupName},
         {Constants.SyncStatus, SyncStatusTypes.New.ToString()},
         {Constants.SyncProgress, 0},
         {Constants.SyncTotalSize, -1},
         {Constants.SyncMaxTimeStamp, -1},
     };
     if (options != null)
     {
         sync[Constants.SyncOptions] = options.AsJson();
     }
     JObject upserted = store.Upsert(Constants.SyncsSoup, sync);
     if (upserted != null)
     {
         return FromJson(upserted);
     }
     sync[Constants.SyncStatus] = SyncStatusTypes.Failed.ToString();
     return FromJson(sync);
 }
        /// <summary>
        ///     Create sync state in database for a sync up and return corresponding SyncState
        /// </summary>
        /// <param name="store"></param>
        /// <param name="target"></param>
        /// <param name="options"></param>
        /// <param name="soupName"></param>
        /// <returns></returns>
        public static SyncState CreateSyncUp(SmartStore.Store.SmartStore store, SyncUpTarget target, SyncOptions options, string soupName)
        {
            var sync = new JObject
            {
                { Constants.SyncType, SyncTypes.SyncUp.ToString() },
                { Constants.SyncSoupName, soupName },
                { Constants.SyncOptions, options.AsJson() },
                { Constants.SyncStatus, SyncStatusTypes.New.ToString() },
                { Constants.SyncProgress, 0 },
                { Constants.SyncTotalSize, -1 },
                { Constants.SyncMaxTimeStamp, -1 },
                { Constants.SyncTarget, target.AsJson() }
            };
            JObject upserted = store.Upsert(Constants.SyncsSoup, sync);

            if (upserted != null)
            {
                return(FromJson(upserted));
            }
            sync[Constants.SyncStatus] = SyncStatusTypes.Failed.ToString();
            return(FromJson(sync));
        }
Exemplo n.º 5
0
        public Models.SyncState SyncUp(SyncEvent syncEvent, Models.SyncUpTarget target, Models.SyncOptions options, string soupName)
        {
            var syncUp      = JsonConvert.SerializeObject(target);
            var syncOptions = JsonConvert.SerializeObject(options, new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            });
            var state = _syncManager.SyncUp(JsonConvert.DeserializeObject <SyncUpTarget>(syncUp), SyncOptions.FromJson(JObject.Parse(syncOptions)), soupName, syncEvent.OnSyncEventRaised);

            return(Models.SyncState.FromJson(state.AsJson().ToString()));
        }