internal void OnTransReply(TransactionReply reply) { TransReply?.Invoke(this, reply); // this should happen only once per transaction id Trace.Assert(TransactionReply == null); TransactionReply = reply; }
private void ConnectToolStripMenuItem_Click(object sender, EventArgs e) { ((ToolStripMenuItem)sender).Enabled = false; ChangeTextMainStatusBar("Загрузка базовых данных..."); Trader.Connect(); Trader.Objects.tTrades.OnNew += new MarketEvents <Trade> .eventElement(EventAllTrades); Trader.Objects.tSecurities.OnNew += new MarketEvents <Securities> .eventElement(EventNewSec); Trader.Objects.tMyTrades.OnNew += new MarketEvents <MyTrade> .eventElement(EventMyTrades); Trader.Objects.tOrders.OnNew += new MarketEvents <Order> .eventElement(EventOrders); Trader.Objects.tOrders.OnChange += new MarketEvents <Order> .eventElement(EventOrders); Trader.Objects.tStopOrders.OnNew += new MarketEvents <StopOrder> .eventElement(EventStopOrders); Trader.Objects.tStopOrders.OnChange += new MarketEvents <StopOrder> .eventElement(EventStopOrders); Trader.Objects.tPortfolios.OnNew += new MarketEvents <Portfolio> .eventElement(EventPortfolio); Trader.Objects.tPortfolios.OnChange += new MarketEvents <Portfolio> .eventElement(EventPortfolio); Trader.Objects.tPositions.OnNew += new MarketEvents <Position> .eventElement(EventPositions); Trader.Objects.tPositions.OnChange += new MarketEvents <Position> .eventElement(EventPositions); Trader.Objects.tQuote.OnChange += new MarketEvents <Quote> .eventElement(EventDepth);//ToolsQuote.eventQuote Trader.Objects.tTransaction.OnTransReply += new ToolsTrans.eventTrans((listReply) => { Qlog.CatchException(() => { if (listReply.Count() > 0) { TransReply r = listReply.Last(); //foreach (TransReply r in listReply) if (r != null) { statusStrip1.GuiAsync(() => { toolStripStatusLabel1.Text = r.ResultMsg; }); ForEachWinDepth((f) => { f.UpdateTransReply(r.ResultMsg); }); } } }); }); }
public void OnTransReply(TransactionReply reply) { TransReply?.Invoke(_quik, reply); }