public void DBGUserordersUpdate(int traderId, CUserOrdersUpdate ordUpdate) { string msg = String.Format("[User_Ord_Update] => botId={0}", traderId); lock (ordUpdate.MonitorOrders) { foreach (var kvp in ordUpdate.MonitorOrders) { foreach (var kvp2 in kvp.Value) { msg += String.Format("[Instrument={0} Id={1} Price={2} Amount={3} Dir={4} ]", kvp.Key, //0 kvp2.Key, //1 kvp2.Value.Price, //2 kvp2.Value.Amount, //3 kvp2.Value.Dir ); } } } Log(msg); }
private void ProcessUserOrdersUpdate(byte[] arrMsgBody) { CUserOrdersUpdate userOrdersUpdate = CUtilProto.DeserializeProto <CUserOrdersUpdate>(arrMsgBody); Log("[UserOrdersUpdate]"); _kernelTerminal.UpdateUserOrders(userOrdersUpdate); }
/// <summary> /// Generates user orders for traders /// /// Call from processRawOrdLogStruct /// </summary> public void EnqueueUserOrdersUpdate(int traderId, CBotBase bb) { int connId = -1; lock (_dictBotIdConnId) { //update 2017-02-07 if (!_dictBotIdConnId.ContainsKey(traderId)) { return; } connId = _dictBotIdConnId[traderId]; } if (connId != -1) { CUserOrdersUpdate ob = new CUserOrdersUpdate(); ob.MonitorOrders = new Dictionary <string, Dictionary <long, COrder> >(); lock (bb.MonitorOrdersAll) { foreach (var v in bb.MonitorOrdersAll) { string isin = v.Key; ob.MonitorOrders[isin] = new Dictionary <long, COrder>(); foreach (var t in v.Value) { long orderId = t.Key; COrder ord = t.Value; ob.MonitorOrders[isin][orderId] = (COrder)ord.Copy(); } } } _bqTraderData.Add(new CTradingData { ConnId = connId, Data = (object)ob, Event = enmTradingEvent.UserOrdersUpdate } ); //SendDataToClients(ob, enmTradingEvent.UserOrdersUpdate, "", connId); _dbg.DBGUserordersUpdate(traderId, ob); } }
private void SendUpdateUserOrders(int connId, CUserOrdersUpdate userOrdersUpdate) { SendDataToClients(userOrdersUpdate, enmTradingEvent.UserOrdersUpdate, "", connId); }