public void From(string ordRef, PTEntity.Order order)
        {
            int idx = Array.FindIndex(LastOrder.Legs,
                                      l => l.InstrumentID == order.InstrumentID &&
                                      l.Direction == order.Direction);

            if (idx > -1)
            {
                LastOrder.Legs[idx] = order;

                foreach (var oVm in _orders)
                {
                    if (oVm.OrderUid == OrderVM.GetOrderUid(order))
                    {
                        oVm.From(order);
                        break;
                    }
                }

                // updating the second leg order
                bool allFinished = false;
                foreach (var oVm in _orders)
                {
                    allFinished = oVm.IsFinished;
                }
                IsAllFinished = allFinished;
                IsCanceled    = ("高频" == Reason ? CheckMlOrderCanceled(_orders) : String.Empty);
            }
        }
 public void OnLegOrderUpdate(string portfId, string mlOrderId, string legOrdRef, PTEntity.Order legOrder)
 {
     if (OnLegOrderUpdated != null)
     {
         OnLegOrderUpdated(portfId, mlOrderId, legOrdRef, legOrder);
     }
 }
示例#3
0
        void _client_OnLegOrderUpdated(string portfId, string mlOrderId, string legOrdRef, PTEntity.Order legOrder)
        {
            OrderUpdateArgs args = new OrderUpdateArgs
            {
                AccountId   = Id,
                PortfolioId = portfId,
                MlOrderId   = mlOrderId,
                LegOrderRef = legOrdRef,
                LegOrder    = legOrder
            };

            EventAggregator.GetEvent <IndividualOrderUpdatedEvent>().Publish(args);
        }