private async Task DoCrawling( Crawling crawling, ICrawlingRepository repository, CancellationToken stoppingToken) { try { crawling.Status = CrawlingStatus.InProgress; await repository.UpdateCrawlingAsync(crawling); var options = new CrawlingOptions(crawling.Expression, crawling.Url); var crawlingResult = await _crawlingService.CrawlAsync(options, stoppingToken); crawling.CrawlingDetails = _mapper.MapDetails(crawling.Id, crawlingResult); crawling.Status = CrawlingStatus.Completed; await repository.UpdateCrawlingAsync(crawling); } catch (Exception e) { crawling.Status = CrawlingStatus.Failed; crawling.StatusText = e.ToString(); await repository.UpdateCrawlingAsync(crawling); _logger.LogError(e, $"Error while crawling {crawling?.Url} in background service."); } }
public void CrawlAsync_OptionsIsNull_ThrowsArgumentNullException() { Assert.ThrowsAsync <ArgumentNullException>(() => _sut.CrawlAsync(null, CancellationToken.None)); }