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();
        }
Exemple #2
0
        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));
        }