public void AddUrl(UrlEntries urlEntries) { if (urlEntries == null) { return; } _webCrawlerDbContext.UrlEntries.Add(urlEntries); _webCrawlerDbContext.SaveChanges(); }
/// <summary> /// Searches all the urls for the given. /// </summary> /// <param name="urlAddress">The URL address.</param> private void SearchAllTheUrls(Uri urlAddress) { if (!_hashUrlSet.Contains(urlAddress) && urlAddress.Host.Contains(_domainName)) { var htmlData = GetUrlData(urlAddress); if (htmlData != null) { var hostUri = urlAddress; var htmlDataUrlList = Extract(htmlData); var expressionCount = Regex.Matches(htmlData, _expression, RegexOptions.IgnoreCase).Count; if (_hashUrlSet.Add(urlAddress)) { var urlEntries = new UrlEntries { Url = urlAddress, Date = DateTimeOffset.Now, EnteredExpression = _expression, NumberOfHits = expressionCount }; //Performance issue //_urlEntries.Add(urlEntries); AddUrl(urlEntries); } var newSubUrls = GetUniqueUrls(htmlDataUrlList, hostUri); foreach (var subHashUrl in newSubUrls) { SearchAllTheUrls(subHashUrl); } } } }