Example #1
0
        private void OnReturnOrder(PBOrderInfo rsp)
        {
            lock (OrderVMCollection)
            {
                if (!OrderVMCollection.Any(order =>
                                           (rsp.OrderSysID != 0 && rsp.OrderSysID == order.OrderSysID) ||
                                           (rsp.OrderID == order.OrderID && rsp.SessionID == order.SessionID)))
                {
                    var orderVM = new OrderVM(this)
                    {
                        OrderID      = rsp.OrderID,
                        OrderSysID   = rsp.OrderSysID,
                        Portfolio    = rsp.Portfolio,
                        SessionID    = rsp.SessionID,
                        Direction    = (DirectionType)rsp.Direction,
                        LimitPrice   = rsp.LimitPrice,
                        Volume       = rsp.Volume,
                        VolumeTraded = rsp.VolumeTraded,
                        VolumeRemain = rsp.VolumeRemain,
                        ExecType     = (OrderExecType)rsp.ExecType,
                        TIF          = (OrderTIFType)rsp.Tif,
                        VolCondition = (OrderVolType)rsp.VolumeCondition,
                        TradingType  = (TradingType)rsp.TradingType,
                        Active       = rsp.Active,
                        Status       = (OrderStatus)rsp.OrderStatus,
                        OpenClose    = (OrderOpenCloseType)rsp.Openclose,
                        InsertTime   = rsp.InsertTime,
                        UpdateTime   = rsp.UpdateTime,
                        CancelTime   = rsp.CancelTime,
                        Exchange     = rsp.Exchange,
                        Contract     = rsp.Contract,
                        Message      = Encoding.UTF8.GetString(rsp.Message.ToByteArray()),
                        InvestorID   = rsp.InvestorID,
                        //rsp.InsertDate
                        //rsp.Message
                        //rsp.OrderType
                        //rsp.StopPrice
                        //rsp.TradingDay
                    };

                    OrderVMCollection.Add(orderVM);
                }
            }
        }
Example #2
0
 private void OnUpdateOrder(PBOrderInfo rsp)
 {
     lock (OrderVMCollection)
     {
         var orderVM = OrderVMCollection.FirstOrDefault(order =>
                                                        (rsp.OrderSysID != 0 && rsp.OrderSysID == order.OrderSysID) ||
                                                        (rsp.OrderID == order.OrderID && rsp.SessionID == order.SessionID));
         if (orderVM != null)
         {
             orderVM.Active     = rsp.Active;
             orderVM.Status     = (OrderStatus)rsp.OrderStatus;
             orderVM.OrderSysID = rsp.OrderSysID;
             orderVM.UpdateTime = rsp.UpdateTime;
             orderVM.Message    = Encoding.UTF8.GetString(rsp.Message.ToByteArray());
         }
         else
         {
             OnReturnOrder(rsp);
         }
     }
 }