public void CancelAllStopordersMethod() { Task.Run(() => { var orders = ClientStoporders.ToArray(); foreach (var order in orders) { if (order.Status != "matched") { TXmlConnector.ConnectorSendCommand( $"<command id=\"cancelstoporder\"><transactionid>{order.Transactionid}</transactionid></command>"); } Thread.Sleep(250); } }); }
private void XmlConnector_OnSendNewOrders(string data) { var orders = (Orders) new XmlSerializer(typeof(Orders)).Deserialize( new StringReader(data)); try { orders.Order = orders.Order.OrderBy(item => DateTime.Parse(item.Time)).ToList(); } catch { } _dispatcher.Invoke(() => { foreach (var order in orders.Order) { var found = ClientOrders.FirstOrDefault(item => item.Transactionid == order.Transactionid); if (found == null) { ClientOrders.Insert(0, order); } else { ClientOrders[ClientOrders.IndexOf(found)] = order; } } foreach (var stoporder in orders.Stoporder) { var found = ClientStoporders.FirstOrDefault(item => item.Transactionid == stoporder.Transactionid); if (found == null) { ClientStoporders.Insert(0, stoporder); } else { ClientStoporders[ClientStoporders.IndexOf(found)] = stoporder; } } }); ActiveOrders = ClientOrders.Count(o => o.Status == "active"); ActiveStoporders = ClientStoporders.Count(o => o.Status == "watching"); }