private OrderMarket OnOrderMarketChange(OrderMarketChange marketChange) { OrderMarket market = _markets.GetOrAdd(marketChange.Id, id => new OrderMarket(this, id)); market.OnOrderMarketChange(marketChange); return(market); }
internal void OnOrderMarketChange(OrderMarketChange orderMarketChange) { OrderMarketSnap newSnap = new OrderMarketSnap(); newSnap.MarketId = _marketId; //update runners if (orderMarketChange.Orc != null) { //runners changed foreach (OrderRunnerChange orderRunnerChange in orderMarketChange.Orc) { OnOrderRunnerChange(orderRunnerChange); } } newSnap.OrderMarketRunners = _marketRunners.Values.Select(omr => omr.Snap); //update closed IsClosed = orderMarketChange.Closed == true; newSnap.IsClosed = IsClosed; _snap = newSnap; }