public void Subscribe(MarketPriceViewModel marketPriceViewModel, string currencyPair)
 {
     lock (_syncLock)
     {
         if (_marketPrices.Any(item => !item.IsBound))
         {
             AddEmptySlot();
         }
     }
     _currencyToMarketPriceViewModel[currencyPair] = marketPriceViewModel;
     _pricingServiceClient.Subscribe(currencyPair);
 }
        public MarketPriceViewModel AddEmptySlot()
        {
            var marketPriceViewModel = new MarketPriceViewModel("", _eventAggregator, this);

            marketPriceViewModel.IsBound = false;
            lock (_syncLock)
            {
                //allow multiple UI for same subscription, add new for each subscription
                _marketPrices.Add(marketPriceViewModel);
            }
            return(marketPriceViewModel);
        }