/// <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) { } }
/// <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) { } }