/// <summary>
        /// 持仓检查
        /// </summary>
        private void CheckHold()
        {
            #region new 李健华 2010-06-08
            //不处理缓存直接从数据库中获取处理
            //VTTraders traders = VTTradersFactory.GetFutureTraders();

            //if (!traders.IsInitializeSuccess)
            //{
            //    return;
            //}

            LogHelper.WriteInfo("FutureDayChecker.Process开始每日开盘期货持仓检查处理");

            //获取所有期货持仓账号类型
            List <BD_AccountTypeInfo> futureAccountTypes = AccountManager.Instance.GetAccoutTypeByACTID((int)Types.AccountAttributionType.FuturesCapital);

            if (Utils.IsNullOrEmpty(futureAccountTypes))
            {
                return;
            }
            try
            {
                //有股指期货和商品期货,或者以后还有别的品种
                foreach (var item in futureAccountTypes)
                {
                    List <AccountPair> userAccountPair = VTTradersFactory.InitializeAccountPair(item);
                    if (Utils.IsNullOrEmpty(userAccountPair))
                    {
                        continue;
                    }
                    foreach (var accountPair in userAccountPair)
                    {
                        UserAccountChecker checker = new UserAccountChecker(accountPair.CapitalAccount, accountPair.HoldAccount);
                        checker.ProcessHold();
                    }
                }

                //更新数据库中的每日检查日期
                //StatusTableChecker.UpdateFutureDayCheckDate(tm);

                //tm.Commit();
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
                //tm.Rollback();
                LogHelper.WriteInfo("FutureDayChecker.Process每日开盘期货检查:持仓处理失败!");
            }
            #endregion

            #region old code update by李健华 2010-06-08
            //VTTraders traders = VTTradersFactory.GetFutureTraders();

            //if (!traders.IsInitializeSuccess)
            //{
            //    return;
            //}

            //LogHelper.WriteInfo("FutureDayChecker.Process开始每日开盘期货持仓检查处理");

            //try
            //{
            //    foreach (var vtTrader in traders.TraderList)
            //    {
            //        foreach (var accountPair in vtTrader.AccountPairList)
            //        {
            //            UserAccountChecker checker = new UserAccountChecker(accountPair.CapitalAccount, accountPair.HoldAccount);
            //            checker.ProcessHold();
            //        }
            //    }

            //    //更新数据库中的每日检查日期
            //    //StatusTableChecker.UpdateFutureDayCheckDate(tm);

            //    //tm.Commit();
            //}
            //catch (Exception ex)
            //{
            //    LogHelper.WriteError(ex.Message, ex);
            //    //tm.Rollback();
            //    LogHelper.WriteInfo("FutureDayChecker.Process每日开盘期货检查:持仓处理失败!");
            //}
            #endregion
        }
        /// <summary>
        /// 资金检查
        /// </summary>
        private void CheckCapitalTable()
        {
            #region new 李健华 2010-06-08
            //VTTraders traders = VTTradersFactory.GetFutureTraders();

            //if (!traders.IsInitializeSuccess)
            //    return;

            LogHelper.WriteInfo("FutureDayChecker.Process开始每日开盘期货资金检查处理");

            //var tm = TransactionFactory.GetTransactionManager();
            //tm.BeginTransaction();
            ReckoningTransaction reckoningTransaction = new ReckoningTransaction();
            Database             database             = DatabaseFactory.CreateDatabase();
            DbConnection         connection           = database.CreateConnection();

            try
            {
                connection.Open();
                reckoningTransaction.Database = database;
                DbTransaction transaction = connection.BeginTransaction();
                reckoningTransaction.Transaction = transaction;

                //获取所有期货持仓账号类型
                List <BD_AccountTypeInfo> futureAccountTypes = AccountManager.Instance.GetAccoutTypeByACTID((int)Types.AccountAttributionType.FuturesCapital);

                if (Utils.IsNullOrEmpty(futureAccountTypes))
                {
                    return;
                }
                foreach (var item in futureAccountTypes)
                {
                    List <AccountPair> userAccountPair = VTTradersFactory.InitializeAccountPair(item);
                    if (Utils.IsNullOrEmpty(userAccountPair))
                    {
                        continue;
                    }
                    foreach (var accountPair in userAccountPair)
                    {
                        UserAccountChecker checker = new UserAccountChecker(accountPair.CapitalAccount, accountPair.HoldAccount);
                        checker.ProcessCapital();
                    }
                }

                //更新数据库中的每日检查日期
                StatusTableChecker.UpdateFutureDayCheckDate(reckoningTransaction);

                reckoningTransaction.Transaction.Commit();
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
                reckoningTransaction.Transaction.Rollback();
                LogHelper.WriteInfo("FutureDayChecker.Process每日开盘期货检查:资金处理失败!");
            }
            finally
            {
                //这里为了安全起见,自行执行一次关闭数据连接
                //if (reckoningTransaction != null && reckoningTransaction.Transaction != null)
                //{
                //    reckoningTransaction.Transaction.Dispose();
                //}
                if (connection != null && connection.State != ConnectionState.Closed)
                {
                    connection.Close();
                }
            }

            LogHelper.WriteInfo("FutureDayChecker.Process结束每日开盘期货检查处理");
            #endregion

            #region old code update by李健华 2010-06-08
            //VTTraders traders = VTTradersFactory.GetFutureTraders();

            //if (!traders.IsInitializeSuccess)
            //    return;

            //LogHelper.WriteInfo("FutureDayChecker.Process开始每日开盘期货资金检查处理");

            ////var tm = TransactionFactory.GetTransactionManager();
            ////tm.BeginTransaction();
            //ReckoningTransaction reckoningTransaction = new ReckoningTransaction();
            //Database database = DatabaseFactory.CreateDatabase();
            //DbConnection connection = database.CreateConnection();

            //try
            //{
            //    connection.Open();
            //    reckoningTransaction.Database = database;
            //    DbTransaction transaction = connection.BeginTransaction();
            //    reckoningTransaction.Transaction = transaction;
            //    foreach (var vtTrader in traders.TraderList)
            //    {
            //        foreach (var accountPair in vtTrader.AccountPairList)
            //        {
            //            UserAccountChecker checker = new UserAccountChecker(accountPair.CapitalAccount, accountPair.HoldAccount);
            //            checker.ProcessCapital();
            //        }
            //    }

            //    //更新数据库中的每日检查日期
            //    StatusTableChecker.UpdateFutureDayCheckDate(reckoningTransaction);

            //    reckoningTransaction.Transaction.Commit();
            //}
            //catch (Exception ex)
            //{
            //    LogHelper.WriteError(ex.Message, ex);
            //    reckoningTransaction.Transaction.Rollback();
            //    LogHelper.WriteInfo("FutureDayChecker.Process每日开盘期货检查:资金处理失败!");
            //}
            //finally
            //{
            //    //这里为了安全起见,自行执行一次关闭数据连接
            //    //if (reckoningTransaction != null && reckoningTransaction.Transaction != null)
            //    //{
            //    //    reckoningTransaction.Transaction.Dispose();
            //    //}
            //    if (connection != null && connection.State != ConnectionState.Closed)
            //    {
            //        connection.Close();
            //    }
            //}

            //LogHelper.WriteInfo("FutureDayChecker.Process结束每日开盘期货检查处理");
            #endregion
        }