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 CrawlingController( ICrawlingRepository repository, IUrlValidationService urlValidation, ICrawlingMapperService mapper, IHttpContextAccessor httpContextAccessor) : base(repository, mapper, httpContextAccessor) { _urlValidation = urlValidation; }
public BaseCrawlingController( ICrawlingRepository repository, ICrawlingMapperService mapper, IHttpContextAccessor httpContextAccessor) { _repository = repository; _mapper = mapper; _userId = httpContextAccessor.GetUserId(); if (string.IsNullOrWhiteSpace(_userId)) { throw new ArgumentException("Could not find User Id.", nameof(_userId)); } }
public CrawlingDetailsController( ICrawlingRepository repository, ICrawlingMapperService mapper, IHttpContextAccessor httpContextAccessor) : base(repository, mapper, httpContextAccessor) { }