private void HandleCurrencyPairUpdate(ICurrencyPairUpdate update) { var spotTileViewModel = SpotTiles.FirstOrDefault(stvm => stvm.CurrencyPair == update.CurrencyPair.Symbol); if (update.UpdateType == UpdateType.Add) { if (spotTileViewModel != null) { // we already have a tile for this currency pair return; } var spotTile = _spotTileFactory(update.CurrencyPair, _config.Config.SubscriptionMode); SpotTiles.Add(spotTile); } else { if (spotTileViewModel != null) { SpotTiles.Remove(spotTileViewModel); spotTileViewModel.Dispose(); } } }