private static void AddOrUpdateImpl( List<OrderRecord> orders, OrderRecord order, UpdateLastUpdateTime updateLastUpdateTime) { var removed = RemoveOrderImpl(orders, order); Debug.Assert(!(updateLastUpdateTime == UpdateLastUpdateTime.No && removed == null)); if (updateLastUpdateTime == UpdateLastUpdateTime.No && removed != null) { order.LastUpdateTime = removed.LastUpdateTime; } orders.Add(order); }
private static void AddOrUpdateImpl( List <OrderRecord> orders, OrderRecord order, UpdateLastUpdateTime updateLastUpdateTime) { var removed = RemoveOrderImpl(orders, order); Debug.Assert(!(updateLastUpdateTime == UpdateLastUpdateTime.No && removed == null)); if (updateLastUpdateTime == UpdateLastUpdateTime.No && removed != null) { order.LastUpdateTime = removed.LastUpdateTime; } orders.Add(order); }
private void AddOrUpdateOrder( OrderRecord order, UpdateLastUpdateTime updateLastUpdateTime) { if (order.Side == MarketSide.Bid) { lock (_bidsLock) { AddOrUpdateImpl(_bids, order, updateLastUpdateTime); _bids.Sort(); } } else { lock (_asksLock) { AddOrUpdateImpl(_asks, order, updateLastUpdateTime); _asks.Sort(); } } }