public RemoveCategory ( Category remCat ) : void | ||
remCat | Category | Category to remove |
return | void |
public override AutoCatResult CategorizeGame(GameInfo game, Filter filter) { if (games == null) { Program.Logger.Write(LoggerLevel.Error, GlobalStrings.Log_AutoCat_GamelistNull); throw new ApplicationException(GlobalStrings.AutoCatGenre_Exception_NoGameList); } if (db == null) { Program.Logger.Write(LoggerLevel.Error, GlobalStrings.Log_AutoCat_DBNull); throw new ApplicationException(GlobalStrings.AutoCatGenre_Exception_NoGameDB); } if (game == null) { Program.Logger.Write(LoggerLevel.Error, GlobalStrings.Log_AutoCat_GameNull); return(AutoCatResult.Failure); } if (!db.Contains(game.Id) || db.Games[game.Id].LastStoreScrape == 0) { return(AutoCatResult.NotInDatabase); } if (!game.IncludeGame(filter)) { return(AutoCatResult.Filtered); } if (RemoveOtherGenres && genreCategories != null) { game.RemoveCategory(genreCategories); } List <string> genreList = db.GetGenreList(game.Id, MAX_PARENT_DEPTH, TagFallback); if (genreList != null && genreList.Count > 0) { List <Category> categories = new List <Category>(); int max = MaxCategories; for (int i = 0; i < genreList.Count && (MaxCategories == 0 || i < max); i++) { if (!IgnoredGenres.Contains(genreList[i])) { categories.Add(games.GetCategory(GetProcessedString(genreList[i]))); } else { max++; // ignored genres don't contribute to max } } game.AddCategory(categories); } return(AutoCatResult.Success); }
public override AutoCatResult CategorizeGame( GameInfo game ) { if( games == null ) { Program.Logger.Write( LoggerLevel.Error, GlobalStrings.Log_AutoCat_GamelistNull ); throw new ApplicationException( GlobalStrings.AutoCatGenre_Exception_NoGameList ); } if( db == null ) { Program.Logger.Write( LoggerLevel.Error, GlobalStrings.Log_AutoCat_DBNull ); throw new ApplicationException( GlobalStrings.AutoCatGenre_Exception_NoGameDB ); } if( game == null ) { Program.Logger.Write( LoggerLevel.Error, GlobalStrings.Log_AutoCat_GameNull ); return AutoCatResult.Failure; } if( !db.Contains( game.Id ) || db.Games[game.Id].LastStoreScrape == 0 ) return AutoCatResult.NotInDatabase; if( RemoveOtherGenres && genreCategories != null ) { game.RemoveCategory( genreCategories ); } List<string> genreList = db.GetGenreList( game.Id, depth:MAX_PARENT_DEPTH, tagFallback:TagFallback ); if( genreList != null && genreList.Count > 0 ) { List<Category> categories = new List<Category>(); int max = MaxCategories; for( int i = 0; i < genreList.Count && ( MaxCategories == 0 || i < max ); i++ ) { if( !IgnoredGenres.Contains( genreList[i] ) ) { categories.Add( games.GetCategory( GetProcessedString( genreList[i] ) ) ); } else { max++; // ignored genres don't contribute to max } } game.AddCategory( categories ); } return AutoCatResult.Success; }
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 (db == null) { Logger.Error(GlobalStrings.Log_AutoCat_DBNull); throw new ApplicationException(GlobalStrings.AutoCatGenre_Exception_NoGameDB); } if (game == null) { Logger.Error(GlobalStrings.Log_AutoCat_GameNull); return(AutoCatResult.Failure); } if (!db.Contains(game.Id, out DatabaseEntry entry) || entry.LastStoreScrape == 0) { return(AutoCatResult.NotInDatabase); } if (!game.IncludeGame(filter)) { return(AutoCatResult.Filtered); } if (RemoveAllCategories) { game.ClearCategories(); } else if (RemoveCategories != null) { List <Category> removed = new List <Category>(); foreach (string category in RemoveCategories) { Category c = gamelist.GetCategory(category); if (game.ContainsCategory(c)) { game.RemoveCategory(c); removed.Add(c); } } foreach (Category c in removed) { if (c.Count == 0) { gamelist.RemoveCategory(c); } } } if (AddCategories != null) { foreach (string category in AddCategories) // add Category, or create it if it doesn't exist { game.AddCategory(gamelist.GetCategory(GetProcessedString(category))); } } return(AutoCatResult.Success); }
public override AutoCatResult CategorizeGame( GameInfo game ) { if( games == null ) { Program.Logger.Write( LoggerLevel.Error, GlobalStrings.Log_AutoCat_GamelistNull ); throw new ApplicationException( GlobalStrings.AutoCatGenre_Exception_NoGameList ); } if( db == null ) { Program.Logger.Write( LoggerLevel.Error, GlobalStrings.Log_AutoCat_DBNull ); throw new ApplicationException( GlobalStrings.AutoCatGenre_Exception_NoGameDB ); } if( game == null ) { Program.Logger.Write( LoggerLevel.Error, GlobalStrings.Log_AutoCat_GameNull ); return AutoCatResult.Failure; } if( !db.Contains( game.Id ) ) return AutoCatResult.NotInDatabase; GameDBEntry dbEntry = db.Games[game.Id]; string genreString = dbEntry.Genre; if( removeOtherGenres && genreCategories != null ) { game.RemoveCategory( genreCategories ); } if( !String.IsNullOrEmpty( genreString ) ) { string[] genreStrings = genreString.Split( new char[] { ',' } ); List<Category> categories = new List<Category>(); for( int i = 0; ( i < maxCategories || maxCategories == 0 ) && i < genreStrings.Length; i++ ) { categories.Add( games.GetCategory( genreStrings[i].Trim() ) ); } game.AddCategory( categories ); } return AutoCatResult.Success; }
public override AutoCatResult CategorizeGame(GameInfo game, Filter filter) { if (games == null) { Program.Logger.Write(LoggerLevel.Error, GlobalStrings.Log_AutoCat_GamelistNull); throw new ApplicationException(GlobalStrings.AutoCatGenre_Exception_NoGameList); } if (db == null) { Program.Logger.Write(LoggerLevel.Error, GlobalStrings.Log_AutoCat_DBNull); throw new ApplicationException(GlobalStrings.AutoCatGenre_Exception_NoGameDB); } if (game == null) { Program.Logger.Write(LoggerLevel.Error, GlobalStrings.Log_AutoCat_GameNull); return AutoCatResult.Failure; } if (!db.Contains(game.Id) || db.Games[game.Id].LastStoreScrape == 0) return AutoCatResult.NotInDatabase; if (!game.IncludeGame(filter)) return AutoCatResult.Filtered; if (RemoveAllCategories) game.ClearCategories(); else if (RemoveCategories != null) { List<Category> removed = new List<Category>(); foreach (string category in RemoveCategories) { Category c = gamelist.GetCategory(category); if (game.ContainsCategory(c)) { game.RemoveCategory(c); removed.Add(c); } } foreach (Category c in removed) { if (c.Count == 0) { gamelist.RemoveCategory(c); } } } if (AddCategories != null) { foreach (string category in AddCategories) { // add Category, or create it if it doesn't exist game.AddCategory(gamelist.GetCategory(GetProcessedString(category))); } } return AutoCatResult.Success; }