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); }