/// <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; }