Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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);
        }