예제 #1
0
 /// <summary>
 /// 更新多表上传状态,删除失效数据
 /// </summary>
 /// <param name="info">更新信息</param>
 /// <param name="SaveMonth">保存时效,默认值:0(月)</param>
 public static void Upload(UpdateFormData info, Action callback, int SaveMonth = 0)
 {
     try
     {
         SqliteTrap.PushAction <UploadParams>((o) =>
         {
             var context = ContextFactory.GetCurrentContext <SqliteDbContext>();
             using (var localTransaction = context.Database.BeginTransaction())
             {
                 try
                 {
                     var datas = o.Data.Datas;
                     foreach (var item in datas)
                     {
                         var entity = LocalDataSyncContext.Entities[item.Key];
                         if (o.Data.Mode == DataSyncMode.UploadToServer)
                         {
                             if (item.Value.Count() > 0)
                             {
                                 UploadStatus(entity, item.Value, o.SaveMonth);
                             }
                         }
                         else if (o.Data.Mode == DataSyncMode.UpdateToServer)
                         {
                             UpdateStatus(entity, item.Value);
                         }
                     }
                     localTransaction.Commit();
                 }
                 catch (Exception)
                 {
                     localTransaction.Rollback();
                 }
             }
         }, callback, new UploadParams()
         {
             Data = info, SaveMonth = SaveMonth
         });
     }
     catch (Exception)
     {
     }
 }
예제 #2
0
        /// <summary>
        /// 从服务器更新数据
        /// </summary>
        public static void UpdateFromServer(UpdateFormData o, Action callback)
        {
            try
            {
                SqliteTrap.PushAction <UpdateFormData>((o1) =>
                {
                    var context = ContextFactory.GetCurrentContext <SqliteDbContext>();

                    using (var localTransaction = context.Database.BeginTransaction())
                    {
                        try
                        {
                            var datas = o1.Datas;
                            foreach (var item in datas)
                            {
                                var entity = LocalDataSyncContext.Entities[item.Key];
                                var jsons  = JsonConvert.SerializeObject(item.Value);
                                Save(entity, jsons);
                            }
                            localTransaction.Commit();
                        }
                        catch (Exception)
                        {
                            localTransaction.Rollback();
                        }
                        finally
                        {
                            ContextFactory.GetCurrentContext <SqliteDbContext>(true);
                            context.Database.Connection.Close();
                            context.Database.Connection.Dispose();
                        }
                    }
                }, callback, o);
            }
            catch (Exception)
            {
            }
        }