/// <summary>
        /// 
        /// </summary>
        /// <param name="OnlineCommandID"></param>
        /// <returns></returns>
        internal Business.OpenTrade GetOnlineCommandByID(int OnlineCommandID)
        {
            Business.OpenTrade Result = new Business.OpenTrade();
            System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(DBConnection.DBConnection.Connection);
            DSTableAdapters.OnlineCommandTableAdapter adap = new DSTableAdapters.OnlineCommandTableAdapter();
            DS.OnlineCommandDataTable tbOnlineCommand = new DS.OnlineCommandDataTable();

            try
            {
                conn.Open();
                adap.Connection = conn;
                tbOnlineCommand = adap.GetOnlineCommandByID(OnlineCommandID);

                if (tbOnlineCommand != null)
                {
                    int count = tbOnlineCommand.Count;
                    for (int i = 0; i < count; i++)
                    {
                        Result.ID = tbOnlineCommand[i].OnlineCommandID;
                        //CommandType
                        Result.Investor = new Business.Investor();
                        Result.Investor.InvestorID = tbOnlineCommand[i].InvestorID;
                        Result.Symbol = new Business.Symbol();
                        Result.Symbol.SymbolID = tbOnlineCommand[i].SymbolID;
                        Result.ClientCode = tbOnlineCommand[i].ClientCode;
                        Result.ClosePrice = tbOnlineCommand[i].ClosePrice;
                        Result.CloseTime = tbOnlineCommand[i].CloseTime;
                        Result.ExpTime = tbOnlineCommand[i].ExpTime;
                        Result.IsClose = tbOnlineCommand[i].IsClose;
                        Result.OpenPrice = tbOnlineCommand[i].OpenPrice;
                        Result.OpenTime = tbOnlineCommand[i].OpenTime;
                        Result.Size = tbOnlineCommand[i].Size;
                        Result.StopLoss = tbOnlineCommand[i].StopLoss;
                        Result.TakeProfit = tbOnlineCommand[i].TakeProfit;
                        //Result.NumberUpdate = tbOnlineCommand[i].NumberUpdate;
                        Result.Commission = tbOnlineCommand[i].Commission;
                        Result.Swap = tbOnlineCommand[i].Swap;
                        Result.Profit = tbOnlineCommand[i].Profit;
                        Result.CommandCode = tbOnlineCommand[i].CommandCode;
                        Result.Taxes = tbOnlineCommand[i].Taxes;
                        Result.Comment = tbOnlineCommand[i].Comment;
                        Result.AgentCommission = tbOnlineCommand[i].AgentCommission;
                        Result.RefCommandID = tbOnlineCommand[i].RefCommandID;
                    }
                }
            }
            catch (Exception ex)
            {
                return null;
            }
            finally
            {
                adap.Connection.Close();
                conn.Close();
            }

            return Result;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="OnlineCommandID"></param>
        /// <returns></returns>
        internal Business.OpenTrade GetOnlineCommandByCommandID(int OnlineCommandID)
        {
            Business.OpenTrade Result = new Business.OpenTrade();
            System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(DBConnection.DBConnection.Connection);
            DSTableAdapters.OnlineCommandTableAdapter adap = new DSTableAdapters.OnlineCommandTableAdapter();
            DS.OnlineCommandDataTable tbOnlineCommand = new DS.OnlineCommandDataTable();

            try
            {
                conn.Open();
                adap.Connection = conn;
                tbOnlineCommand = adap.GetOnlineCommandByID(OnlineCommandID);

                if (tbOnlineCommand != null)
                {
                    Business.OpenTrade newOpenTradeSymbol = new Business.OpenTrade();

                    #region FIND SYMBOL AND TYPE INSTANCE FOR COMMAND(COMMAND IN SYMBOL, COMMAND IN INVESTOR, COMMAND IN COMMAND EXECUTOR
                    if (Business.Market.SymbolList != null && Business.Market.SymbolList.Count > 0)
                    {
                        int countSymbol = Business.Market.SymbolList.Count;
                        for (int j = 0; j < countSymbol; j++)
                        {
                            if (Business.Market.SymbolList[j].SymbolID == tbOnlineCommand[0].SymbolID)
                            {
                                newOpenTradeSymbol.Symbol = Business.Market.SymbolList[j];

                                break;
                            }
                        }
                    }
                    #endregion

                    #region SEARCH MARKET AND GET TYPE COMMAND
                    if (Business.Market.MarketArea != null)
                    {
                        int countMarketArea = Business.Market.MarketArea.Count;
                        bool flagMarketArea = false;
                        for (int j = 0; j < countMarketArea; j++)
                        {
                            if (flagMarketArea)
                                break;

                            if (Business.Market.MarketArea[j].Type != null)
                            {
                                int countType = Business.Market.MarketArea[j].Type.Count;
                                for (int n = 0; n < countType; n++)
                                {
                                    if (Business.Market.MarketArea[j].Type[n].ID == tbOnlineCommand[0].CommandTypeID)
                                    {
                                        newOpenTradeSymbol.Type = Business.Market.MarketArea[j].Type[n];

                                        flagMarketArea = true;

                                        break;
                                    }
                                }
                            }
                        }
                    }
                    #endregion

                    #region FIND INVESTOR AND IGROUPSECURITY INSTANCE OF COMMAND(COMMAND IN SYMBOL, COMMAND IN INVESTOR, COMMAND IN COMMAND EXECUTOR
                    if (Business.Market.InvestorList != null)
                    {
                        int countInvestor = Business.Market.InvestorList.Count;
                        for (int j = 0; j < countInvestor; j++)
                        {
                            if (Business.Market.InvestorList[j].InvestorID == tbOnlineCommand[0].InvestorID)
                            {
                                newOpenTradeSymbol.Investor = Business.Market.InvestorList[j];

                                #region GET IGROUP SECURITY
                                if (Business.Market.IGroupSecurityList != null)
                                {
                                    int countIGroupSecurity = Business.Market.IGroupSecurityList.Count;
                                    for (int n = 0; n < countIGroupSecurity; n++)
                                    {
                                        if (Business.Market.IGroupSecurityList[n].SecurityID == newOpenTradeSymbol.Symbol.SecurityID &&
                                            Business.Market.IGroupSecurityList[n].InvestorGroupID == newOpenTradeSymbol.Investor.InvestorGroupInstance.InvestorGroupID)
                                        {
                                            newOpenTradeSymbol.IGroupSecurity = Business.Market.IGroupSecurityList[n];

                                            break;
                                        }
                                    }
                                }
                                #endregion

                                break;
                            }
                        }
                    }
                    #endregion

                    #region GET SPREAD DIFFIRENCE FOR COMMAND
                    //GET SPREAD DIFFRENCE OF OPEN TRADE
                    double spreadDifference = TradingServer.Model.CommandFramework.CommandFrameworkInstance.GetSpreadDifference(newOpenTradeSymbol.Symbol.SecurityID,
                        newOpenTradeSymbol.Investor.InvestorGroupInstance.InvestorGroupID);

                    newOpenTradeSymbol.SpreaDifferenceInOpenTrade = spreadDifference;
                    #endregion

                    //===============================
                    #region SET CLOSE PRICES COMMAND
                    if (tbOnlineCommand[0].CommandTypeID == 1 || tbOnlineCommand[0].CommandTypeID == 11)
                    {
                        newOpenTradeSymbol.ClosePrice = newOpenTradeSymbol.Symbol.TickValue.Bid;
                    }

                    if (tbOnlineCommand[0].CommandTypeID == 2 || tbOnlineCommand[0].CommandTypeID == 12)
                    {
                        newOpenTradeSymbol.ClosePrice = (newOpenTradeSymbol.Symbol.TickValue.Ask +
                            Business.Symbol.ConvertNumberPip(newOpenTradeSymbol.Symbol.Digit, newOpenTradeSymbol.SpreaDifferenceInOpenTrade));
                    }
                    #endregion

                    //=================================

                    #region NEW INSTANCE FOR SYMBOL LIST
                    newOpenTradeSymbol.AgentCommission = tbOnlineCommand[0].AgentCommission;
                    newOpenTradeSymbol.ClientCode = tbOnlineCommand[0].ClientCode;
                    newOpenTradeSymbol.CloseTime = tbOnlineCommand[0].CloseTime;
                    newOpenTradeSymbol.CommandCode = tbOnlineCommand[0].CommandCode;
                    newOpenTradeSymbol.Comment = tbOnlineCommand[0].Comment;
                    newOpenTradeSymbol.Commission = tbOnlineCommand[0].Commission;
                    newOpenTradeSymbol.ExpTime = tbOnlineCommand[0].ExpTime;
                    newOpenTradeSymbol.FreezeMargin = 0;
                    newOpenTradeSymbol.ID = tbOnlineCommand[0].OnlineCommandID;
                    newOpenTradeSymbol.IsClose = tbOnlineCommand[0].IsClose;
                    newOpenTradeSymbol.OpenPrice = tbOnlineCommand[0].OpenPrice;
                    newOpenTradeSymbol.OpenTime = tbOnlineCommand[0].OpenTime;
                    newOpenTradeSymbol.Profit = tbOnlineCommand[0].Profit;
                    newOpenTradeSymbol.Size = tbOnlineCommand[0].Size;
                    newOpenTradeSymbol.StopLoss = tbOnlineCommand[0].StopLoss;
                    newOpenTradeSymbol.Swap = tbOnlineCommand[0].Swap;
                    newOpenTradeSymbol.TakeProfit = tbOnlineCommand[0].TakeProfit;
                    newOpenTradeSymbol.Taxes = tbOnlineCommand[0].Taxes;
                    newOpenTradeSymbol.TotalSwap = tbOnlineCommand[0].TotalSwaps;
                    newOpenTradeSymbol.RefCommandID = tbOnlineCommand[0].RefCommandID;
                    #endregion

                    Result = newOpenTradeSymbol;
                }
            }
            catch (Exception ex)
            {
                return null;
            }
            finally
            {
                adap.Connection.Close();
                conn.Close();
            }

            return Result;
        }