private void OnNewBestBuySell(Level2Item bestsell, Level2Item bestbuy) { if (SpreadItems.Count == 0) { Dispatcher.Invoke(() => SpreadItems.Insert(0, new SpreadItem { Bid = bestsell.Price, Ask = bestbuy.Price, BSize = bestsell.Quantity, ASize = bestbuy.Quantity })); } else { var item = new SpreadItem { Bid = bestsell.Price, Ask = bestbuy.Price, BSize = bestsell.Quantity, ASize = bestbuy.Quantity }; if (item.CompareTo(SpreadItems.First())) { return; } Dispatcher.Invoke(() => SpreadItems.Insert(0, item)); } }
/// <summary> /// Visit item use index (if not null) and array. /// </summary> /// <param name="x"></param> virtual public void VisitSpreadItem(SpreadItem x) { Debug.Assert(x.Index == null); VisitElement(x.Expression); }
void SerializeItem(SpreadItem item) { _serializer.StartSerialize("Item"); SerializeOptionalProperty("Expression", item.Expression); _serializer.EndSerialize(); }