public void RemoveOrders(int tag, object value) { int count = this.orders.Count; int index = 0; while (index < this.orders.Count) { SingleOrder singleOrder = this.orders[index]; if (singleOrder.ContainsField(tag)) { object obj = singleOrder.GetValue(tag); if (obj != null && obj.ToString() == value.ToString()) { this.orders.Remove(index); continue; } } ++index; } if (count <= this.orders.Count) { return; } this.EmitOrderListUpdated(); }
public static void RemoveOrders(int tag, object value) { int count = OrderManager.orders.Count; int index = 0; while (index < OrderManager.orders.Count) { SingleOrder order = OrderManager.orders.All[index] as SingleOrder; object obj = order.GetValue(tag); if (obj != null && obj.ToString() == value.ToString()) { if (order.OrdStatus != OrdStatus.Cancelled && order.OrdStatus != OrdStatus.PendingCancel && order.OrdStatus != OrdStatus.Filled) { order.Cancel(); } OrderManager.orders.Remove(order); if (order.Persistent) { OrderManager.server.Remove((IOrder)order); } } else { ++index; } } if (count == OrderManager.orders.Count || OrderManager.OrderListUpdated == null) { return; } OrderManager.OrderListUpdated(typeof(OrderManager), EventArgs.Empty); }