Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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();
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
            }
        }
Пример #5
0
        /// <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;
                }
            }));
        }
Пример #6
0
        /// <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) { }
        }
Пример #7
0
 public async Task <bool> SaveFavorites(string system)
 {
     _hsSerializer = new HyperspinSerializer(_hyperspinFrontEnd.Path, system);
     return(await _hsSerializer.SerializeFavoritesAsync(CurrentSystemsGames.Select(x => x.Game)));
 }