internal void OrderCanceledHandle(OrderCanceledData data) { _ordersLock.EnterUpgradeableReadLock(); try { foreach (OrderBase order in data.Orders) { Guid guid = order.OrigClientId; if (_orders.ContainsKey(guid)) { _orders[guid].Status = data.Status; _orders[guid].OrderChanged(); _ordersLock.EnterWriteLock(); try { _orders[guid].Dispose(); _orders.Remove(guid); } finally { _ordersLock.ExitWriteLock(); } } } } finally { _ordersLock.ExitUpgradeableReadLock(); } }
private void OrderCanceledHandler(OrderCanceledData data) { TraderInfo traderInfo = TraderStatistic.Find(x => x.Symbol.Equals(data.Symbol)); if (traderInfo != null) { traderInfo.Update(data); TraderInfoChanged?.Invoke(traderInfo); } _receiver.OrderCanceledHandle(data); if (data.Status == OrderStatus.Rejected) { OrderCancelError?.Invoke(data); } }
internal void Update(OrderCanceledData data) { Update(data as CommonFields); TraderBalance2 = data.TraderBalance2; }