public void AddCrawlAction(ACrawlAction <TArachnodeDAO> crawlAction, CrawlActionType crawlActionType, bool isEnabled, int order) { //TODO: AssemblyName should be Namespace... crawlAction.AssemblyName = crawlAction.GetType().Namespace; crawlAction.CrawlActionType = crawlActionType; crawlAction.IsEnabled = isEnabled; crawlAction.Order = order; crawlAction.TypeName = crawlAction.GetType().FullName; CrawlActions.Add(crawlAction.TypeName, crawlAction); }
/// <summary> /// Performs the crawl actions. /// </summary> /// <param name = "crawlRequest">The crawl request.</param> /// <param name = "crawlActionType">Type of the crawl action.</param> /// <param name = "arachnodeDAO">The arachnode DAO.</param> public override void PerformCrawlActions(CrawlRequest <TArachnodeDAO> crawlRequest, CrawlActionType crawlActionType, IArachnodeDAO arachnodeDAO) { switch (crawlActionType) { case CrawlActionType.PreRequest: foreach (List <ACrawlAction <TArachnodeDAO> > crawlActions in _preRequestCrawlActions.Values) { foreach (ACrawlAction <TArachnodeDAO> crawlAction in crawlActions) { if (crawlAction.IsEnabled) { try { crawlAction.PerformAction(crawlRequest, arachnodeDAO); } catch (Exception exception) { arachnodeDAO.InsertException(crawlRequest.Parent.Uri.AbsoluteUri, crawlRequest.Discovery.Uri.AbsoluteUri, exception, false); } } } } break; case CrawlActionType.PreGet: foreach (List <ACrawlAction <TArachnodeDAO> > crawlActions in _preGetCrawlActions.Values) { foreach (ACrawlAction <TArachnodeDAO> crawlAction in crawlActions) { if (crawlAction.IsEnabled) { try { crawlAction.PerformAction(crawlRequest, arachnodeDAO); } catch (Exception exception) { arachnodeDAO.InsertException(crawlRequest.Parent.Uri.AbsoluteUri, crawlRequest.Discovery.Uri.AbsoluteUri, exception, false); } } } } break; case CrawlActionType.PostRequest: foreach (List <ACrawlAction <TArachnodeDAO> > crawlActions in _postRequestCrawlActions.Values) { foreach (ACrawlAction <TArachnodeDAO> crawlAction in crawlActions) { if (crawlAction.IsEnabled) { try { crawlAction.PerformAction(crawlRequest, arachnodeDAO); } catch (Exception exception) { arachnodeDAO.InsertException(crawlRequest.Parent.Uri.AbsoluteUri, crawlRequest.Discovery.Uri.AbsoluteUri, exception, false); } } } } break; } }
/// <summary> /// Performs the crawl actions. /// </summary> /// <param name = "crawlRequest">The crawl request.</param> /// <param name = "crawlActionType">Type of the crawl action.</param> /// <param name = "arachnodeDAO">The arachnode DAO.</param> public abstract void PerformCrawlActions(CrawlRequest <TArachnodeDAO> crawlRequest, CrawlActionType crawlActionType, IArachnodeDAO arachnodeDAO);