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