Beispiel #1
0
        public static bool InsertOrUpdateLinkDTO(LinkDTO dto)
        {
            bool result = false;

            try
            {
                using (var _db = new CrawlerModel())
                {
                    if (string.IsNullOrEmpty(dto.ID))
                    {
                        CrawlerLink link = new CrawlerLink()
                        {
                            ID           = Guid.NewGuid().ToString(),
                            Name         = dto.Name,
                            Link         = dto.Link,
                            IsRun        = dto.IsRun,
                            IsDelete     = false,
                            CreateUser   = "******",
                            CreateDate   = DateTime.Now,
                            ModifierUser = "******",
                            ModifierDate = DateTime.Now
                        };
                        _db.CrawlerLinks.Add(link);
                    }
                    else
                    {
                        var link = _db.CrawlerLinks.Where(o => o.ID == dto.ID).FirstOrDefault();
                        if (link != null)
                        {
                            link.Name         = dto.Name;
                            link.Link         = dto.Link;
                            link.IsRun        = dto.IsRun;
                            link.ModifierDate = DateTime.Now;
                        }
                    }
                    if (_db.SaveChanges() > 0)
                    {
                        result = true;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            return(result);
        }
Beispiel #2
0
        static public bool ProcessData(string name, string sHttp)
        {
            bool ret = false;

            try
            {
                using (var _db = new CrawlerModel())
                {
                    HtmlWeb      htmlWeb  = new HtmlWeb();
                    HtmlDocument htmlDoc  = htmlWeb.Load(sHttp);
                    var          listTagA = htmlDoc.DocumentNode.SelectNodes("//a");


                    /* get all link rss */
                    List <string> listRss = new List <string>();
                    foreach (HtmlNode tagA in listTagA)
                    {
                        string href = tagA.Attributes["href"] != null ? tagA.Attributes["href"].Value : "";
                        if (href.Contains(".rss") && !listRss.Contains(href))
                        {
                            listRss.Add(href);
                        }
                    }

                    if (listRss.Count > 0)
                    {
                        /* Create crawler */
                        var checkCrawler = _db.CrawlerLinks.Where(o => o.Link == sHttp).FirstOrDefault();
                        var temName      = _db.CrawlerLinks.Where(o => o.Name.Contains("Temp-")).Count();
                        temName++;
                        if (checkCrawler == null)
                        {
                            checkCrawler = new CrawlerLink()
                            {
                                ID           = Guid.NewGuid().ToString(),
                                Name         = string.IsNullOrEmpty(name)? "Temp-" + temName.ToString() : name,
                                Link         = sHttp,
                                IsRun        = true,
                                IsDelete     = false,
                                CreateUser   = "******",
                                CreateDate   = DateTime.Now,
                                ModifierUser = "******",
                                ModifierDate = DateTime.Now,
                            };
                            /* save db */
                            _db.CrawlerLinks.Add(checkCrawler);
                            _db.SaveChanges();
                        }

                        /* loop all rss to create crawler sub */
                        foreach (var linkRss in listRss)
                        {
                            string url = sHttp.Replace("/rss", linkRss);
                            CreateCrawlerSub(checkCrawler.ID, url);
                        }
                    }
                }

                ret = true;
            }
            catch (Exception ex)
            { }
            return(ret);
        }