/// <summary> /// 带事务持久化资金变化 /// </summary> /// <param name="delta">资金变化实体</param> /// <param name="db">数据库对象</param> /// <param name="transaction">事务对象</param> public void PersistChangeWithTransaction(HK_CapitalAccount_DeltaInfo delta, Database db, DbTransaction transaction) { HK_CapitalAccount_DeltaDal deltaInfoDal = new HK_CapitalAccount_DeltaDal(); deltaInfoDal.Add(delta, db, transaction); }
/// <summary> /// 清除资金变化记录 /// </summary> /// <param name="database">数据库对象</param> /// <param name="transaction">事务对象</param> private void CleanDeltaTable(Database database, DbTransaction transaction) { HK_CapitalAccount_DeltaDal deltaInfoDal = new HK_CapitalAccount_DeltaDal(); deltaInfoDal.Delete(database, transaction); }
/// <summary> /// 同步更新数据库 /// </summary> public void SyncChangeToBase() { HK_CapitalAccount_DeltaDal deltaInfoDal = new HK_CapitalAccount_DeltaDal(); var deltaList = deltaInfoDal.GetAllSum(); if (deltaList == null) { return; } if (deltaList.Count == 0) { return; } try { bool isSuccess = false; Database database = DatabaseFactory.CreateDatabase(); HK_CapitalAccountDal dal = new HK_CapitalAccountDal(); using (DbConnection connection = database.CreateConnection()) { connection.Open(); DbTransaction transaction = connection.BeginTransaction(); try { foreach (var deltaInfo in deltaList) { dal.AddUpdate(deltaInfo.CapitalAccountLogo, deltaInfo.AvailableCapitalDelta, deltaInfo.FreezeCapitalTotalDelta, deltaInfo.TodayOutInCapital, deltaInfo.HasDoneProfitLossTotalDelta, database, transaction); } transaction.Commit(); isSuccess = true; } catch (Exception ex) { transaction.Rollback(); LogHelper.WriteError(ex.Message, ex); } } //同步后清除增量表数据 if (isSuccess) { deltaInfoDal.Truncate(); } /*DataManager.ExecuteInTransaction((database, transaction) => * { * foreach (var deltaInfo in deltaList) * { * dal.AddUpdate(deltaInfo.CapitalAccountLogo, * deltaInfo.AvailableCapitalDelta, * deltaInfo.FreezeCapitalTotalDelta, * deltaInfo.TodayOutInCapital, * deltaInfo.HasDoneProfitLossTotalDelta, * database, transaction); * } * * //同步后清除增量表数据 * CleanDeltaTable(database, transaction); * deltaList = null; * });*/ } catch (Exception ex) { LogHelper.WriteError(ex.Message, ex); } }
/// <summary> /// 持久化资金变化 /// </summary> /// <param name="delta">资金变化实体</param> public void PersistChange(HK_CapitalAccount_DeltaInfo delta) { HK_CapitalAccount_DeltaDal deltaInfoDal = new HK_CapitalAccount_DeltaDal(); deltaInfoDal.Add(delta); }
/// <summary> /// 批量更新资金账户事务 /// </summary> /// <param name="baseList">港股资金账户实体</param> public void Commit(List <HK_CapitalAccountInfo> baseList) { try { bool isSuccess = false; HK_CapitalAccountDal dal = new HK_CapitalAccountDal(); Database database = DatabaseFactory.CreateDatabase(); using (DbConnection connection = database.CreateConnection()) { connection.Open(); DbTransaction transaction = connection.BeginTransaction(); try { foreach (var data in baseList) { dal.Update(data.CapitalAccountLogo, data.AvailableCapital, data.FreezeCapitalTotal, data.TodayOutInCapital, data.HasDoneProfitLossTotal, database, transaction); } transaction.Commit(); isSuccess = true; } catch (Exception ex) { transaction.Rollback(); LogHelper.WriteError(ex.Message, ex); } } //提交后清除增量表数据 if (isSuccess) { HK_CapitalAccount_DeltaDal deltaInfoDal = new HK_CapitalAccount_DeltaDal(); deltaInfoDal.Truncate(); } /*DataManager.ExecuteInTransaction((database, transaction) => * { * foreach (var data in baseList) * { * dal.Update(data.CapitalAccountLogo, * data.AvailableCapital, * data.FreezeCapitalTotal, * data.TodayOutInCapital, * data.HasDoneProfitLossTotal, database, * transaction); * } * * //提交后清除增量表数据 * CleanDeltaTable(database, transaction); * });*/ } catch (Exception ex) { LogHelper.WriteError(ex.Message, ex); } }