/// <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); }