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; }
public GameButton( Game game, GamePickerViewModel parent, LaunchGameService launchGameService, GameConfigService gameConfigService, FanGameEditingService fanGameEditingService ) { _game = game; _parent = parent; _launchGameService = launchGameService; _gameConfigService = gameConfigService; _fanGameEditingService = fanGameEditingService; Command = new RelayCommand(async() => { if (!string.IsNullOrEmpty(_game.FileLocation)) { var error = await _launchGameService.LaunchGame(_game); if (error != null) { MessageBox.Show(error.Message, "Error"); } } else { _gameConfigService.SetGameToConfigure(_game); new GameConfigWindow().ShowDialog(); } }); EditCommand = new RelayCommand(() => { _fanGameEditingService.SetFanGameToEdit((FanGame)_game); _parent.MessengerInstance.Send("FanGameEditorPage.xaml", MainViewModel.ChangePageMessageToken); }); }
public FanGameEditorViewModel( FanGameEditingService fanGameEditingService, FileSystemBrowserService fileSystemBrowserService ) { _fanGameEditingService = fanGameEditingService; _fileSystemBrowserService = fileSystemBrowserService; BrowseCommand = new RelayCommand(() => { var browseResult = _fileSystemBrowserService.BrowseFiles( "Select game", new("Executable files", "*.exe"), new("All files", "*.*") ); if (browseResult == null) { return; } GameLocation = browseResult; RaisePropertyChanged(nameof(GameLocation)); }); BrowseImageCommand = new RelayCommand(() => { var browseResult = _fileSystemBrowserService.BrowseFiles( "Select cover image", new("Image files", "*.png", "*.jpg"), new("All files", "*.*") ); if (browseResult == null) { return; } CoverImageLocation = browseResult; RaisePropertyChanged(nameof(CoverImageLocation)); }); DeleteCommand = new RelayCommand(async() => { var error = await _fanGameEditingService.DeleteFanGame(); if (error != null) { MessageBox.Show(error.Message, "Error"); return; } MessengerInstance.Send <object?>(null, GamePickerViewModel.UpdateGamesToken); MessengerInstance.Send("HomePage.xaml", MainViewModel.ChangePageMessageToken); }); SaveCommand = new RelayCommand(async() => { var error = await _fanGameEditingService.SaveAsync(); if (error != null) { MessageBox.Show(error.Message, "Error"); return; } MessengerInstance.Send <object?>(null, GamePickerViewModel.UpdateGamesToken); MessengerInstance.Send("HomePage.xaml", MainViewModel.ChangePageMessageToken); }); CancelCommand = new RelayCommand( () => MessengerInstance.Send("HomePage.xaml", MainViewModel.ChangePageMessageToken) ); }