public void UpdateOwnedGames(Provider provider) { List <IGame> importedGames = null; switch (provider) { case Provider.Custom: return; case Provider.GOG: importedGames = gogLibrary.GetLibraryGames(); break; case Provider.Origin: importedGames = originLibrary.GetLibraryGames(); break; case Provider.Steam: importedGames = steamLibrary.GetLibraryGames(SteamUserName); break; case Provider.Uplay: return; default: return; } foreach (var game in importedGames) { var existingGame = GamesCollection.FindOne(a => a.ProviderId == game.ProviderId && a.Provider == provider); if (existingGame == null) { logger.Info("Adding new game {0} into library from {1} provider", game.ProviderId, game.Provider); AssignPcPlatform(game); AddGame(game); } } // Delete games that are no longer in library foreach (IGame dbGame in GamesCollection.Find(a => a.Provider == provider)) { if (importedGames.FirstOrDefault(a => a.ProviderId == dbGame.ProviderId) == null) { // Except games that are installed, in case that game is part of free weekend, beta or similar events if (dbGame.IsInstalled) { continue; } logger.Info("Removing game {0} which is no longer in {1} library", dbGame.ProviderId, dbGame.Provider); DeleteGame(dbGame); } } }
public List <IGame> UpdateOwnedGames(Provider provider) { List <IGame> importedGames = null; List <IGame> newGames = new List <IGame>(); switch (provider) { case Provider.Custom: return(newGames); case Provider.GOG: importedGames = gogLibrary.GetLibraryGames(); break; case Provider.Origin: importedGames = originLibrary.GetLibraryGames(); break; case Provider.Steam: importedGames = steamLibrary.GetLibraryGames(AppSettings.SteamSettings); break; case Provider.Uplay: return(newGames); case Provider.BattleNet: importedGames = battleNetLibrary.GetLibraryGames(); break; default: return(newGames); } foreach (var game in importedGames) { var existingGame = GamesCollection.FindOne(a => a.ProviderId == game.ProviderId && a.Provider == provider); if (existingGame == null) { logger.Info("Adding new game {0} into library from {1} provider", game.ProviderId, game.Provider); AssignPcPlatform(game); AddGame(game); newGames.Add(game); } } return(newGames); }