private void AttachMyStuffToObsv(IObservable <StocksService.Stock> stockdata) { var obsv = stockdata. Select(st => new StockViewModel(st)); obsv.Subscribe(st => { this.TickerList.Add(st); }); obsv.Where(svm => MyWatchListSymbols.Contains(svm.Symbol)). Subscribe(svm => MyWatchList.Add(svm)); }
// Load stocks the loooong way... // Method has several reasons to change: // 1. What if the service model class (Stock) changes? // 2. What if the service method changes? // 3. What if the logic for adding to the ticker list changes? // 4. What if the logic for adding the My Watch List changes? public async Task LoadStocksEnumerable() { this.IsLoading = true; var stocks = await _Service.GetAllStocks(); foreach (var stock in stocks) { StockViewModel svm = new StockViewModel(stock); TickerList.Add(svm); if (MyWatchListSymbols.Contains(svm.Symbol)) { MyWatchList.Add(svm); } } this.IsLoading = false; }