/// <summary> /// Sets the games to the given system. /// </summary> /// <param name="systemName">Name of the system.</param> /// <param name="dbName">Name of the database.</param> /// <returns></returns> public async Task <IEnumerable <Game> > SetGamesForSystem(string systemName, string dbName = "") { CurrentSystemsGames.Clear(); var games = await _hsDataProvider.GetAllGames(_hyperspinFrontEnd.Path, systemName, dbName); //Map the original systems from a games.ini if (games != null && games.Count() > 0) { var dbPath = Path.Combine(_hyperspinFrontEnd.Path, "Databases", systemName); if (Directory.Exists(dbPath + "\\" + "MultiSystem")) { var romMapper = new RomMapperRl(); var mappedGames = await romMapper.GetGamesFromRocketLaunchGamesIniAsync(dbPath + "\\MultiSystem"); foreach (var game in mappedGames) { try { games.FirstOrDefault(x => x.RomName == game.RomName).OriginalSystem = game.System; } catch { } } } } return(games); }
/// <summary> /// Populates the main menu entries from a main menu xml /// </summary> /// <param name="dbName">Name of the database.</param> /// <returns></returns> public async Task PopulateMainMenuSystems(string dbName = "") { IEnumerable <MainMenu> _systems = null; Systems.Clear(); if (CurrentSystemsGames.Count > 0) { CurrentSystemsGames.Clear(); } await Task.Run(async() => { if (string.IsNullOrEmpty(dbName)) { dbName = "Main Menu"; } //Get systems from main menu xml _systems = await _hsDataProvider.GetAllSystems(_settingsRepo.HypermintSettings.HsPath, "Main Menu", dbName); }); //Add to system list if (_systems?.Count() > 0) { foreach (var system in _systems) { Systems.Add(new MenuItemViewModel(system)); } await GetSystemIconsAsync(); } }
public async Task ScanForRoms(string systemName, string rlPath) { if (!Directory.Exists(rlPath)) { return; } IRomScan romScan = new RomScanner(); await romScan.ScanRlRomPathsAsync(CurrentSystemsGames.Select(x => x.Game), rlPath, systemName); }
public async Task AuditMedia(string systemName) { _auditer = new HyperspinAudit(_hyperspinFrontEnd, new MediaHelperHs(_hyperspinFrontEnd.Path, systemName)); if (systemName.ToLower().Contains("main menu")) { await _auditer.ScanMainMenuMediaAsync(CurrentSystemsGames.Select(x => x.Game)); } else { await _auditer.ScanForMediaAsync(CurrentSystemsGames.Select(x => x.Game)); } }
/// <summary> /// Saves the current games list to XML asynchronous. /// </summary> /// <param name="systemName"></param> /// <param name="dbName">Name of the database.</param> /// <returns></returns> public async Task <bool> SaveCurrentGamesListToXmlAsync(string systemName, string dbName) { return(await Task.Run(async() => { try { _hsSerializer = new HyperspinSerializer(_hyperspinFrontEnd.Path, systemName, dbName); var games = CurrentSystemsGames.Select(x => x.Game); await _hsSerializer.SerializeAsync(games, false); return true; } catch (System.Exception) { return false; } })); }
/// <summary> /// Gets the favorites for system. /// </summary> /// <param name="systemName">Name of the system.</param> /// <returns></returns> public async Task GetFavoritesForSystem(string systemName) { try { if (CurrentSystemsGames.Count > 0) { _hsSerializer = new HyperspinSerializer(_hyperspinFrontEnd.Path, systemName); var faves = await _hsSerializer.DeserializeFavoritesAsync(); if (faves != null) { foreach (var favorite in faves) { CurrentSystemsGames.FirstOrDefault(x => x.RomName == favorite.RomName) .Game.IsFavorite = true; } } } } catch (Exception ex) { } }
public async Task <bool> SaveFavorites(string system) { _hsSerializer = new HyperspinSerializer(_hyperspinFrontEnd.Path, system); return(await _hsSerializer.SerializeFavoritesAsync(CurrentSystemsGames.Select(x => x.Game))); }