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); }
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); }