private void OnUpdateReceived(object sender, SharedData.poco.updates.ClientUpdateEventArgs e)
 {
     App.Current.Dispatcher.Invoke((Action) delegate
     {
         if (e.ClientQuotes.ContainsKey(TradingSymbol))
         {
             SharedData.poco.Quote quote = e.ClientQuotes[TradingSymbol];
             CurrentPrice = string.Format("{0}/{1}", quote.Bid, quote.Ask);
         }
     });
 }
        private void OnUpdateReceived(object sender, SharedData.poco.updates.ClientUpdateEventArgs e)
        {
            App.Current.Dispatcher.Invoke((Action) delegate
            {
                if (null != e.ClientQuotes && e.ClientQuotes.Count > 0)
                {
                    lock (lockQuotes)
                    {
                        int currentIndex = QuoteCollectionView.CurrentPosition;

                        Quotes.Clear();
                        Quotes.AddRange(e.ClientQuotes.Values);

                        QuoteCollectionView.MoveCurrentToPosition(currentIndex);
                        QuoteCollectionView.Refresh();
                    }
                }
            });
        }
Пример #3
0
        private void OnUpdateReceived(object sender, SharedData.poco.updates.ClientUpdateEventArgs e)
        {
            App.Current.Dispatcher.Invoke((Action) delegate
            {
                //quotes
                if (null != e.ClientQuotes && e.ClientQuotes.Count > 0)
                {
                    lock (lockQuotes)
                    {
                        int currentIndex = QuoteCollectionView.CurrentPosition;

                        Quotes.Clear();
                        Quotes.AddRange(e.ClientQuotes.Values);

                        QuoteCollectionView.MoveCurrentToPosition(currentIndex);
                        QuoteCollectionView.Refresh();
                    }
                }

                //current trades
                if (null != e.Positions && e.Positions.Count > 0)
                {
                    lock (lockTrades)
                    {
                        int currentIndex = TradesCollectionView.CurrentPosition;

                        Trades.Clear();
                        Trades.AddRange(e.Positions.Values);

                        if (TradesCollectionView.Count >= currentIndex)
                        {
                            TradesCollectionView.MoveCurrentToPosition(currentIndex);
                        }
                        TradesCollectionView.Refresh();
                    }
                }
                else
                {
                    Trades.Clear();
                    TradesCollectionView.Refresh();
                }

                //net trades
                if (null != e.NetPosition && e.NetPosition.Count > 0)
                {
                    int currentIndex = NetTradesCollectionView.CurrentPosition;

                    NetTrades.Clear();
                    NetTrades.AddRange(e.NetPosition.Values);

                    if (NetTradesCollectionView.Count >= currentIndex)
                    {
                        NetTradesCollectionView.MoveCurrentToPosition(currentIndex);
                    }
                    NetTradesCollectionView.Refresh();
                }
                else
                {
                    NetTrades.Clear();
                    NetTradesCollectionView.Refresh();
                }
            });
        }