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); } }
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); }