示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
        /// <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);
            }
        }
示例#4
0
        /// <summary>
        /// 持久化资金变化
        /// </summary>
        /// <param name="delta">资金变化实体</param>
        public void PersistChange(HK_CapitalAccount_DeltaInfo delta)
        {
            HK_CapitalAccount_DeltaDal deltaInfoDal = new HK_CapitalAccount_DeltaDal();

            deltaInfoDal.Add(delta);
        }
示例#5
0
        /// <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);
            }
        }