コード例 #1
0
        /// <inheritdoc />
        public override AutoCatResult CategorizeGame(GameInfo game, Filter filter)
        {
            if (games == null)
            {
                Logger.Error(GlobalStrings.Log_AutoCat_GamelistNull);
                throw new ApplicationException(GlobalStrings.AutoCatGenre_Exception_NoGameList);
            }

            if (game == null)
            {
                Logger.Error(GlobalStrings.Log_AutoCat_GameNull);
                return(AutoCatResult.Failure);
            }

            if (!game.IncludeGame(filter))
            {
                return(AutoCatResult.Filtered);
            }

            if (!db.Contains(game.Id, out DatabaseEntry entry) || entry.LastStoreScrape == 0)
            {
                return(AutoCatResult.NotInDatabase);
            }

            AppPlatforms platforms = entry.Platforms;

            if (Windows && platforms.HasFlag(AppPlatforms.Windows))
            {
                game.AddCategory(games.GetCategory(GetCategoryName("Windows")));
            }

            if (Mac && platforms.HasFlag(AppPlatforms.Mac))
            {
                game.AddCategory(games.GetCategory(GetCategoryName("Mac")));
            }

            if (Linux && platforms.HasFlag(AppPlatforms.Linux))
            {
                game.AddCategory(games.GetCategory(GetCategoryName("Linux")));
            }

            if (Linux && platforms.HasFlag(AppPlatforms.Linux))
            {
                game.AddCategory(games.GetCategory(GetCategoryName("SteamOS")));
            }

            return(AutoCatResult.Success);
        }