/// <summary> /// Method gets all urls from requested domain /// </summary> public HashSet <string> CollectAllUrls() { TrimUlrNameIfNeeded(DomainUrl); for (int i = 0; i < DepthOfUrlsSearch; i++) { ParseUrlsFromCurrentLayer(); SaveCurrentPageUrlsToLayerUrlCollection(); SaveCurrentLayerToAllUrlsCollection(); } AllUrlsOnCurrentPage.Clear(); AllUrlsOnCurrentLayer.Clear(); return(AllUrls); }
/// <summary> /// Method takes all links from embedded layer /// </summary> private void ParseUrlsFromCurrentLayer() { AllUrlsOnCurrentPage.Clear(); if (AllUrls.Count == 0) { AllUrlsOnCurrentLayer.Add(DomainUrl); } foreach (var url in AllUrlsOnCurrentLayer) { if (url.StartsWith("/")) { GetCurrentPageUrls(DomainUrl + url); } else { GetCurrentPageUrls(url); } } AllUrlsOnCurrentLayer.Clear(); }
/// <summary> /// Method save all urls from current page to AllUrlsOnCurrentLayer /// </summary> private void SaveCurrentPageUrlsToLayerUrlCollection() { AllUrlsOnCurrentLayer.UnionWith(AllUrlsOnCurrentPage); }