public ItemSearchViewModel( List<GameItemModel> items, IApiDataUpdater apiDataUpdater, WatchlistViewModel watchlistViewModel ) { ViewModelName = "Search"; _apiDataUpdater = apiDataUpdater; _watchlistViewModel = watchlistViewModel; _items = new List<GameItemModel>(items); Items = new PaginatedObservableCollection<GameItemModel>(_items, 20); _subTypeDictionary = BuildSubtypeDictionary(_items); SelectedRarity = RarityModel.Rarities.First(); }
private void Init() { // prevent design time error in xaml designer if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(new DependencyObject())) { _contextProvider = new FakeDataContextProvider(); } else { _contextProvider = new GameDataContextProvider(); } _tpApiWrapper = new TradingPostApiWrapper(new ApiAccessor(new WebClientProvider())); _dataUpdater = new ApiDataUpdater(_tpApiWrapper); _dbBuilder = new DbBuilder(_tpApiWrapper, _contextProvider); _dbBuilder.BuildDatabase(); using (var context = _contextProvider.GetContext()) { _sharedItems = context.GameItems.ToList(); } _sharedItemDictionary = _sharedItems.ToDictionary(item => item.ItemId, item => item); Task.Run(() => _dataUpdater.UpdatePricesParallel(_sharedItems)); }