Beispiel #1
0
        public GamePickerViewModel(
            GamePickerList gamePickerList,
            ActiveGameCategory activeGameCategory,
            LaunchGameService launchGameService,
            GameConfigService gameConfigService,
            FanGameEditingService fanGameEditingService
            )
        {
            _gamePickerList        = gamePickerList;
            _activeGameCategory    = activeGameCategory;
            _launchGameService     = launchGameService;
            _gameConfigService     = gameConfigService;
            _fanGameEditingService = fanGameEditingService;

            MessengerInstance.Register <object?>(this, UpdateGamesToken, _ => UpdateGames());

            GameButtons = new ObservableCollection <GameButton>();

            UpdateGames();
        }
        public HomeViewModel(
            GamePickerViewModel gamePickerViewModel,
            ActiveGameCategory activeGameCategory,
            GameCategoryService gameCategoryService,
            LaunchRandomGameService launchRandomGameService,
            FanGameEditingService fanGameEditingService
            )
        {
            _gamePickerViewModel     = gamePickerViewModel;
            _activeGameCategory      = activeGameCategory;
            _gameCategoryService     = gameCategoryService;
            _launchRandomGameService = launchRandomGameService;
            _fanGameEditingService   = fanGameEditingService;

            MessengerInstance.Register <object?>(this, RebuildHeadersMessageToken, RebuildHeaders);

            HeaderList = new ObservableCollection <HeaderButton>();

            List <GameCategories> gameCategoryList = _gameCategoryService.CreateGameCategoryList();

            foreach (var category in gameCategoryList)
            {
                HeaderList.Add(new CategoryHeaderButton(category, this));
            }

            HeaderList.Add(CreateRandomGameHeader());

            OpenSettingsCommand = new RelayCommand(
                () => MessengerInstance.Send("SettingsPage.xaml", MainViewModel.ChangePageMessageToken)
                );

            CreateNewFanGameCommand = new RelayCommand(() => {
                _fanGameEditingService.SetFanGameToEdit(null);

                MessengerInstance.Send("FanGameEditorPage.xaml", MainViewModel.ChangePageMessageToken);
            });

            NewFanGameVisibility = Visibility.Hidden;
        }