private OrderMarket OnOrderMarketChange(OrderMarketChange marketChange)
        {
            OrderMarket market = _markets.GetOrAdd(marketChange.Id, id => new OrderMarket(this, id));

            market.OnOrderMarketChange(marketChange);
            return(market);
        }
Exemple #2
0
        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;
        }