public void UpdateTradersDeals(CRawDeal rd) { if (m_plaza2Connector.GlobalConfig.IsTradingServer && m_plaza2Connector.IsDealsOnline && m_plaza2Connector.IsStockOnline) { lock (ListDeals) { ListDeals.Add((CRawDeal)rd.Copy()); } // m_plaza2Connector.UpdateTradersDeals(m_isin); } }
private void ThreadFunc(object objisin_id) { const int MAX_COUNT = 50000; while (true) { try { CRawDeal rd = m_bqRawDeal.GetElementBlocking(); // if (m_dealQqueue.Count > MAX_COUNT) { // m_plaza2Connector.Error("m_dealQqueue more than max."+m_isin+" Count=" + m_dealQqueue.Count); } if (m_plaza2Connector.AnalzyeTimeFrames) { m_TimeFrameAnalyzer.AddNewDeal(rd); } if (m_plaza2Connector.IsDealsOnline) { TriggerBotsDealsUpdate(rd); UpdateTradersDeals(rd); } if ((DateTime.Now - m_lastUpdate).TotalMinutes > 2) { try { (new System.Threading.Tasks.Task(() => TaskWriteLastReplIDToFile(rd.ReplID, rd.Isin_id))).Start(); m_lastUpdate = DateTime.Now; } catch (Exception e) { Error("CDealsStruct.ThreadFunc." + e.Message); } } m_lastRD = (CRawDeal)rd.Copy(); //TO DO from config int m_parMin = 5; //only for "fresh data" if ((m_plaza2Connector.ServerTime - rd.Moment).TotalMinutes < m_parMin) { if (m_plaza2Connector.IsDealsOnline) { UpdateAllLastDealData(); } } } catch (Exception e) { Error("CDealsStruct.ThreadFunc", e); } } }