void btceModels_DepthUpdated(object sender, System.EventArgs e) { UiThread.UiDispatcher.Invoke(() => { Asks = btceModels.MarketDepths[CurrentPair].Asks.OrderBy(a => a.Price).Take(20).OrderByDescending(a => a.Price).ToList(); Bids = btceModels.MarketDepths[CurrentPair].Bids.OrderByDescending(a => a.Price).Take(20).ToList(); AggregatedAsks = DepthHelper.GetAggregatedAskOrderList(btceModels.MarketDepths[CurrentPair].Asks, configuration.PairAggregatorIncrement[CurrentPair]).OrderByDescending(a => a.Price).ToList(); AggregatedBids = DepthHelper.GetAggregatedBidOrderList(btceModels.MarketDepths[CurrentPair].Bids, configuration.PairAggregatorIncrement[CurrentPair]).OrderByDescending(a => a.Price).ToList(); foreach (var order in btceModels.ActiveOrders.FindAll(a => a.Pair == CurrentPair && a.Type == TradeTypeEnum.Sell)) { var ask = Asks.Find(a => a.Price == order.Rate); if (ask != null) { ask.ActiveOrder = string.Format("Sell {0}", order.Amount); } } foreach (var order in btceModels.ActiveOrders.FindAll(a => a.Pair == CurrentPair && a.Type == TradeTypeEnum.Buy)) { var bid = Bids.Find(a => a.Price == order.Rate); if (bid != null) { bid.ActiveOrder = string.Format("Buy {0}", order.Amount); } } spread = Asks[Asks.Count - 1].Price - Bids[0].Price; OnPropertyChanged("Asks"); OnPropertyChanged("Bids"); OnPropertyChanged("AggregatedAsks"); OnPropertyChanged("AggregatedBids"); OnPropertyChanged("Spread"); }); }