Esempio n. 1
0
        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.");
     }
 }