private void ProcessRtnOrder(CtpOrder data)
        {
            var localId = $"{data.FrontID}:{data.SessionID}:{data.OrderRef}";

            if (!_orders.TryGetByLocalId(localId, out var order))
            {
                return;
            }

            if (!string.IsNullOrEmpty(data.OrderSysID) && string.IsNullOrEmpty(order.OrderID))
            {
                order.OrderID = $"{data.ExchangeID}:{data.InstrumentID}:{data.OrderSysID}";
                _orders.SetOrderSysId(order.OrderID, localId);
            }
            ReportOrder(order, CtpConvert.GetExecType(data), CtpConvert.GetOrderStatus(data), 0, 0, data.StatusMsg);
            if (_cancelPendings.Contains(localId))
            {
                _cancelPendings.Remove(localId);
                ProcessCancelOrder(localId);
            }
        }
Ejemplo n.º 2
0
        private void ProcessRtnOrder(CtpOrder data)
        {
            var id = CtpConvert.GetId(data);

            if (!_orders.TryGetById(id, out var order))
            {
                return;
            }
            if (!string.IsNullOrEmpty(data.OrderSysID) && string.IsNullOrEmpty(order.OrderID))
            {
                order.OrderID    = data.OrderSysID;
                order.ExchangeID = data.ExchangeID;
                _orders.SetMap(order);
                ProcessTradePending();
            }
            ReportOrder(order, CtpConvert.GetExecType(data), CtpConvert.GetOrderStatus(data), 0, 0, data.StatusMsg);
            if (_cancelPendings.Contains(id))
            {
                _cancelPendings.Remove(id);
                ProcessCancelOrder(id);
            }
        }