Esempio n. 1
0
        /// <summary>
        /// 带事务更新
        /// </summary>
        /// <param name="delta"></param>
        /// <param name="db"></param>
        /// <param name="transaction"></param>
        public void PersistChangeWithTransaction(XH_CapitalAccountTable_DeltaInfo delta, Database db,
                                                 DbTransaction transaction)
        {
            XH_CapitalAccountTable_DeltaInfoDal deltaInfoDal = new XH_CapitalAccountTable_DeltaInfoDal();

            deltaInfoDal.Add(delta, db, transaction);
        }
Esempio n. 2
0
        /// <summary>
        /// 清空资金变化
        /// </summary>
        /// <param name="database"></param>
        /// <param name="transaction"></param>
        private void CleanDeltaTable(Database database, DbTransaction transaction)
        {
            XH_CapitalAccountTable_DeltaInfoDal deltaInfoDal = new XH_CapitalAccountTable_DeltaInfoDal();

            deltaInfoDal.Delete(database, transaction);
        }
Esempio n. 3
0
        /// <summary>
        /// 构造函数
        /// </summary>
        public void SyncChangeToBase()
        {
            XH_CapitalAccountTable_DeltaInfoDal deltaInfoDal = new XH_CapitalAccountTable_DeltaInfoDal();
            var deltaList = deltaInfoDal.GetAllSum();

            if (deltaList == null)
            {
                return;
            }

            if (deltaList.Count == 0)
            {
                return;
            }

            try
            {
                bool     isSuccess            = false;
                Database database             = DatabaseFactory.CreateDatabase();
                XH_CapitalAccountTableDal dal = new XH_CapitalAccountTableDal();

                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);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 批量更新
        /// </summary>
        /// <param name="baseList"></param>
        public void Commit(List <XH_CapitalAccountTableInfo> baseList)
        {
            try
            {
                bool isSuccess = false;
                XH_CapitalAccountTableDal dal = new XH_CapitalAccountTableDal();

                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)
                {
                    XH_CapitalAccountTable_DeltaInfoDal deltaInfoDal = new XH_CapitalAccountTable_DeltaInfoDal();
                    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);
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 持久化变化量
        /// </summary>
        /// <param name="delta"></param>
        public void PersistChange(XH_CapitalAccountTable_DeltaInfo delta)
        {
            XH_CapitalAccountTable_DeltaInfoDal deltaInfoDal = new XH_CapitalAccountTable_DeltaInfoDal();

            deltaInfoDal.Add(delta);
        }