Beispiel #1
0
        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);
        }
Beispiel #2
0
        /// <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;
            }
        }
Beispiel #3
0
 /// <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);