private void CreateOrUpdateOrphanGames(GameDefinition game, LinkOrphanGamesJobResult result)
        {
            var gameName     = RemoveYear(game.Name);
            var existingGame = GetExistingBGGGameByName(gameName);

            if (existingGame != null)
            {
                UpdateGameDefinition(game, existingGame.Id, result);
            }
            else
            {
                CreateOrUpdateBGGGame(existingGame, gameName, game, result);
            }

            if (game.BoardGameGeekGameDefinitionId != null)
            {
                _dataContext.CommitAllChanges();
            }
            else
            {
                result.StillOrphanGames.Add(new LinkOrphanGamesJobResult.OrphanGame()
                {
                    Name          = game.Name,
                    Id            = game.Id,
                    GamingGroupId = game.GamingGroupId
                });
            }
        }
        public LinkOrphanGamesJobResult LinkOrphanGames()
        {
            var result    = new LinkOrphanGamesJobResult();
            var stopwatch = new Stopwatch();

            stopwatch.Start();
            try
            {
                var orphanGames = GetOrphanGames();
                result.OrphanGames = orphanGames.Count;
                foreach (var game in orphanGames)
                {
                    CreateOrUpdateOrphanGames(game, result);
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                RollbarClient.SendException(ex);
                ex.ToExceptionless();
            }

            stopwatch.Stop();
            result.TimeEllapsed = stopwatch.Elapsed;
            return(result);
        }
Example #3
0
        public LinkOrphanGamesJobResult LinkOrphanGames()
        {
            var result    = new LinkOrphanGamesJobResult();
            var stopwatch = new Stopwatch();

            stopwatch.Start();
            try
            {
                var orphanGames = GetOrphanGames();
                result.OrphanGames = orphanGames.Count;

                foreach (var game in orphanGames)
                {
                    var gameName = RemoveYear(game.Name);

                    var existingGame = GetExistingBGGGameByName(gameName);
                    if (existingGame != null)
                    {
                        UpdateGameDefinition(game, existingGame.Id, result);
                    }
                    else
                    {
                        var searchResult = _boardGameGeekApiClient.SearchBoardGames(gameName, true);
                        if (searchResult.Any())
                        {
                            var gameToAdd = GetGameToAddFromSearch(searchResult);

                            if (gameToAdd != null)
                            {
                                existingGame = GetExistingBGGGameById(gameToAdd);
                                if (existingGame != null)
                                {
                                    UpdateGameDefinition(game, existingGame.Id, result);
                                }
                                else
                                {
                                    var newRecord = CreateBGGGame(gameToAdd);

                                    UpdateGameDefinition(game, newRecord.Id, result);
                                }
                            }
                        }
                    }

                    if (game.BoardGameGeekGameDefinitionId != null)
                    {
                        _dataContext.CommitAllChanges();
                    }
                    else
                    {
                        result.StillOrphanGames.Add(new LinkOrphanGamesJobResult.OrphanGame()
                        {
                            Name          = game.Name,
                            Id            = game.Id,
                            GamingGroupId = game.GamingGroupId
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                RollbarClient.SendException(ex);
            }

            stopwatch.Stop();
            result.TimeEllapsed = stopwatch.Elapsed;
            return(result);
        }
Example #4
0
 private void UpdateGameDefinition(GameDefinition game, int boardGameGeekGameDefinitionId,
                                   LinkOrphanGamesJobResult jobResult)
 {
     game.BoardGameGeekGameDefinitionId = boardGameGeekGameDefinitionId;
     jobResult.LinkedGames++;
 }
        private void CreateOrUpdateBGGGame(BoardGameGeekGameDefinition existingGame, string gameName, GameDefinition game, LinkOrphanGamesJobResult result)
        {
            var searchResult = _boardGameGeekApiClient.SearchBoardGames(gameName, true);

            if (searchResult.Any())
            {
                var gameToAdd = GetGameToAddFromSearch(searchResult);

                if (gameToAdd != null)
                {
                    existingGame = GetExistingBGGGameById(gameToAdd);
                    if (existingGame != null)
                    {
                        UpdateGameDefinition(game, existingGame.Id, result);
                    }
                    else
                    {
                        var newRecord = CreateBGGGame(gameToAdd);
                        UpdateGameDefinition(game, newRecord.Id, result);
                    }
                }
            }
        }
        public LinkOrphanGamesJobResult LinkOrphanGames()
        {
            var result = new LinkOrphanGamesJobResult();
            var stopwatch = new Stopwatch();
            stopwatch.Start();
            try
            {


                var orphanGames = GetOrphanGames();
                result.OrphanGames = orphanGames.Count;

                foreach (var game in orphanGames)
                {
                    var gameName = RemoveYear(game.Name);

                    var existingGame = GetExistingBGGGameByName(gameName);
                    if (existingGame != null)
                    {
                        UpdateGameDefinition(game, existingGame.Id, result);
                    }
                    else
                    {
                        var searchResult = _boardGameGeekApiClient.SearchBoardGames(gameName, true);
                        if (searchResult.Any())
                        {
                            var gameToAdd = GetGameToAddFromSearch(searchResult);

                            if (gameToAdd != null)
                            {

                                existingGame = GetExistingBGGGameById(gameToAdd);
                                if (existingGame != null)
                                {
                                    UpdateGameDefinition(game, existingGame.Id, result);
                                }
                                else
                                {
                                    var newRecord = CreateBGGGame(gameToAdd);

                                    UpdateGameDefinition(game, newRecord.Id, result);
                                }
                            }
                        }
                    }

                    if (game.BoardGameGeekGameDefinitionId != null)
                    {
                        _dataContext.CommitAllChanges();
                    }
                    else
                    {
                        result.StillOrphanGames.Add(new LinkOrphanGamesJobResult.OrphanGame()
                        {
                            Name = game.Name,
                            Id = game.Id,
                            GamingGroupId = game.GamingGroupId
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                RollbarClient.SendException(ex);
            }

            stopwatch.Stop();
            result.TimeEllapsed = stopwatch.Elapsed;
            return result;
        }
 private void UpdateGameDefinition(GameDefinition game, int boardGameGeekGameDefinitionId,
     LinkOrphanGamesJobResult jobResult)
 {
     game.BoardGameGeekGameDefinitionId = boardGameGeekGameDefinitionId;
     jobResult.LinkedGames++;
 }