private void CrawlOnceUnknown(int maxCount) { var ids = _repository.GetUnknownIds(maxCount); if (ids.Any()) { Log($"{ids.Count()} unknown boardgames."); var boardGames = _geekConnector.RetrieveBoardGames(ids).ToList(); Log($"{boardGames.Count()} boardgames retrieved."); _repository.StoreBoardGames(boardGames); _repository.DeleteUnknownIds(ids); } }
private void CollectBoardGames() { System.Diagnostics.Debug.WriteLine("CollectBoardGames started."); while (!_cancellationToken.IsCancellationRequested) { System.Diagnostics.Debug.WriteLine("CollectBoardGames loop entered."); var callIds = _idsToDo.GetConsumingEnumerable().Take(75).ToList(); System.Diagnostics.Debug.WriteLine($"CollectBoardGames retrieved { callIds.Count } Ids."); var existingGames = _boardGameRepository.GetBoardGames(callIds.Select(id => id.Id)).ToList(); System.Diagnostics.Debug.WriteLine($"CollectBoardGames skips { existingGames.Count } Ids."); callIds = callIds.Where(id => !existingGames.Select(eg => eg.Id).ToList().Contains(id.Id)).ToList(); System.Diagnostics.Debug.WriteLine($"CollectBoardGames retrieved { callIds.Count } Ids."); var games = _geekConnector.RetrieveBoardGames(callIds.Select(i => i.Id).Distinct().ToArray()); System.Diagnostics.Debug.WriteLine($"CollectBoardGames retrieved { callIds.Count } Games."); _boardGameRepository.StoreBoardGames(games); System.Diagnostics.Debug.WriteLine($"CollectBoardGames saved { callIds.Count } Games."); } }