示例#1
0
        /// <summary>
        /// Determines whether the specified path is game.
        /// </summary>
        /// <param name="args">The args.</param>
        /// <param name="consoleType">The type of gamesystem this game belongs too</param>
        /// <returns>A Game</returns>
        private Game GetGame(ItemResolveArgs args, string consoleType)
        {
            var validExtensions = GetExtensions(consoleType);

            var gameFiles = args.FileSystemChildren.Where(f =>
            {
                var fileExtension = Path.GetExtension(f.FullName);

                return(validExtensions.Contains(fileExtension, StringComparer.OrdinalIgnoreCase));
            }).ToList();

            if (gameFiles.Count == 0)
            {
                _logger.Error("gameFiles is 0 for " + args.Path);
                return(null);
            }

            var game = new Game
            {
                Path       = gameFiles[0].FullName,
                GameSystem = ResolverHelper.GetGameSystemFromPlatform(consoleType)
            };

            game.IsPlaceHolder = false;

            if (gameFiles.Count > 1)
            {
                game.MultiPartGameFiles = gameFiles.Select(i => i.FullName).ToArray();
                game.IsMultiPart        = true;
            }

            return(game);
        }
示例#2
0
        /// <summary>
        /// Determines whether the specified path is game.
        /// </summary>
        /// <param name="args">The args.</param>
        /// <param name="consoleType">The type of gamesystem this game belongs too</param>
        /// <returns>A Game</returns>
        private Game GetGame(ItemResolveArgs args, string consoleType)
        {
            var validExtensions = GetExtensions(consoleType);

            var gameFiles = args.FileSystemChildren.Where(f =>
            {
                var fileExtension = Path.GetExtension(f.FullName) ?? string.Empty;

                return(validExtensions.Contains(fileExtension, StringComparer.OrdinalIgnoreCase));
            }).ToList();

            if (gameFiles.Count == 0)
            {
                return(null);
            }

            var game = new Game
            {
                Path       = gameFiles[0].FullName,
                GameSystem = ResolverHelper.GetGameSystemFromPlatform(consoleType)
            };

            game.IsPlaceHolder =
                string.Equals(game.GameSystem, GameSystem.Windows, StringComparison.OrdinalIgnoreCase) ||
                string.Equals(game.GameSystem, GameSystem.DOS, StringComparison.OrdinalIgnoreCase);

            game.DisplayMediaType = ResolverHelper.GetDisplayMediaTypeFromPlatform(consoleType);

            if (gameFiles.Count > 1)
            {
                game.MultiPartGameFiles = gameFiles.Select(i => i.FullName).ToList();
                game.IsMultiPart        = true;
            }

            return(game);
        }