/// <summary> /// lấy ngày học theo môn /// </summary> /// <param name="monHoc">môn học</param> public void GetNgayHocTheoMon(MonHoc monHoc) { string url = string.Format("http://dlu.edu.vn/timetable_display.aspx?course={0}&subjectcode={1}&week={2}", Lop, monHoc.MaMonHoc, Tuan); string content = WebRequestcCT.GetContent(url); var document = new HtmlDocument(); document.LoadHtml(content.Replace("\t", "")); int i = 1; foreach (HtmlNode doc in document.DocumentNode.SelectNodes("//*[@width='14%']")) { i++; var newdoc = new HtmlDocument(); newdoc.LoadHtml(doc.InnerHtml); var listbuoihoc = new List<BuoiHoc>(); HtmlNodeCollection tdtext = newdoc.DocumentNode.SelectNodes("//td"); if (tdtext == null) continue; foreach (HtmlNode textdoc in tdtext) { if (!string.IsNullOrEmpty(textdoc.InnerHtml)) { string text = textdoc.InnerHtml.Replace("<br><br>", "<br>"); string[] arr = Regex.Split(text, "<br>").Where(x => x != "").ToArray(); var buoiHoc = new BuoiHoc(); buoiHoc.MonHoc = monHoc; MatchCollection arr2 = Regex.Matches(arr[2], @"\d{1,}"); buoiHoc.TietHocBatDau = int.Parse(arr2[0].Value); buoiHoc.TietHocKetThuc = int.Parse(arr2[1].Value); // chua test duoc co trung lich hay khong NgayHoc ngay = ListNgayHoc.FirstOrDefault(x => x.Thu == i); if (ngay == null) buoiHoc.TrungLich = false; else buoiHoc.TrungLich = TrungBuoiHoc(ngay, buoiHoc); buoiHoc.PhongHoc = arr[3]; listbuoihoc.Add(buoiHoc); } } if (ListNgayHoc.All(x => x.Thu != i)) { var ngayHoc = new NgayHoc { Thu = i, BuoiHocs = listbuoihoc }; ListNgayHoc.Add(ngayHoc); } else { ListNgayHoc.First(x=>x.Thu==i).BuoiHocs.AddRange(listbuoihoc); } } }
/// <summary> /// lấy danh sách môn học từ web cửa trường /// </summary> /// <param name="content">nội dung trang web của trường cần lấy</param> /// <returns>danh sách môn học của khoa đó</returns> public List <MonHoc> GetMonHocs(string content) { var listm = new List <MonHoc>(); var doc = new HtmlDocument(); doc.LoadHtml(content); var document = doc.DocumentNode.SelectNodes("//table[@class='MsoNormalTable']"); var text = document[1].InnerHtml; doc.LoadHtml(document[0].InnerHtml); var nodevalue = doc.DocumentNode.SelectNodes("//tr[11]/td/p/b/span"); this.TongTc = int.Parse(nodevalue[0].InnerText); this.TongTcBacBuoc = int.Parse(nodevalue[1].InnerText); Console.WriteLine(TongTc + ": " + TongTcBacBuoc); doc.LoadHtml(text); foreach (var selectNode in doc.DocumentNode.SelectNodes("//tr")) { var newdoc = new HtmlDocument(); newdoc.LoadHtml(selectNode.InnerHtml); var newnode = newdoc.DocumentNode.SelectNodes("//td/p/span"); if (newnode != null && !string.IsNullOrEmpty(newnode[0].InnerText.Trim())) { MonHoc mh = new MonHoc() { MaMonHoc = newnode[0].InnerText, TenMonHoc = newnode[1].InnerText, SoTC = int.Parse(newnode[2].InnerText), }; try { int.Parse(newnode[5].InnerText); mh.BacBuoc = true; } catch (Exception) { mh.BacBuoc = false; } listm.Add(mh); } } return(listm); }
/// <summary> /// lấy danh sách môn học từ web cửa trường /// </summary> /// <param name="content">nội dung trang web của trường cần lấy</param> /// <returns>danh sách môn học của khoa đó</returns> public List<MonHoc> GetMonHocs(string content) { var listm = new List<MonHoc>(); var doc = new HtmlDocument(); doc.LoadHtml(content); var document = doc.DocumentNode.SelectNodes("//table[@class='MsoNormalTable']"); var text = document[1].InnerHtml; doc.LoadHtml(document[0].InnerHtml); var nodevalue = doc.DocumentNode.SelectNodes("//tr[11]/td/p/b/span"); this.TongTc = int.Parse(nodevalue[0].InnerText); this.TongTcBacBuoc = int.Parse(nodevalue[1].InnerText); Console.WriteLine(TongTc +": "+ TongTcBacBuoc); doc.LoadHtml(text); foreach (var selectNode in doc.DocumentNode.SelectNodes("//tr")) { var newdoc = new HtmlDocument(); newdoc.LoadHtml(selectNode.InnerHtml); var newnode = newdoc.DocumentNode.SelectNodes("//td/p/span"); if (newnode != null&&!string.IsNullOrEmpty(newnode[0].InnerText.Trim())) { MonHoc mh = new MonHoc() { MaMonHoc = newnode[0].InnerText, TenMonHoc = newnode[1].InnerText, SoTC = int.Parse(newnode[2].InnerText), }; try { int.Parse(newnode[5].InnerText); mh.BacBuoc = true; } catch (Exception) { mh.BacBuoc = false; } listm.Add(mh); } } return listm; }
/// <summary> /// lấy ngày học theo môn /// </summary> /// <param name="monHoc">môn học</param> public void GetNgayHocTheoMon(MonHoc monHoc) { string url = string.Format("http://dlu.edu.vn/timetable_display.aspx?course={0}&subjectcode={1}&week={2}", Lop, monHoc.MaMonHoc, Tuan); string content = WebRequestcCT.GetContent(url); var document = new HtmlDocument(); document.LoadHtml(content.Replace("\t", "")); int i = 1; foreach (HtmlNode doc in document.DocumentNode.SelectNodes("//*[@width='14%']")) { i++; var newdoc = new HtmlDocument(); newdoc.LoadHtml(doc.InnerHtml); var listbuoihoc = new List <BuoiHoc>(); HtmlNodeCollection tdtext = newdoc.DocumentNode.SelectNodes("//td"); if (tdtext == null) { continue; } foreach (HtmlNode textdoc in tdtext) { if (!string.IsNullOrEmpty(textdoc.InnerHtml)) { string text = textdoc.InnerHtml.Replace("<br><br>", "<br>"); string[] arr = Regex.Split(text, "<br>").Where(x => x != "").ToArray(); var buoiHoc = new BuoiHoc(); buoiHoc.MonHoc = monHoc; MatchCollection arr2 = Regex.Matches(arr[2], @"\d{1,}"); buoiHoc.TietHocBatDau = int.Parse(arr2[0].Value); buoiHoc.TietHocKetThuc = int.Parse(arr2[1].Value); // chua test duoc co trung lich hay khong NgayHoc ngay = ListNgayHoc.FirstOrDefault(x => x.Thu == i); if (ngay == null) { buoiHoc.TrungLich = false; } else { buoiHoc.TrungLich = TrungBuoiHoc(ngay, buoiHoc); } buoiHoc.PhongHoc = arr[3]; listbuoihoc.Add(buoiHoc); } } if (ListNgayHoc.All(x => x.Thu != i)) { var ngayHoc = new NgayHoc { Thu = i, BuoiHocs = listbuoihoc }; ListNgayHoc.Add(ngayHoc); } else { ListNgayHoc.First(x => x.Thu == i).BuoiHocs.AddRange(listbuoihoc); } } }
/// <summary> /// lấy danh sách môn học từ text /// </summary> /// <param name="text">nội dung phân rã</param> /// <returns>danh sách môn học</returns> public List<MonHoc> GetMonHocs(string text) { List<MonHoc> kq = new List<MonHoc>(); HtmlDocument document = new HtmlDocument(); document.LoadHtml(text.Replace("\t","")); foreach (var selectNode in document.DocumentNode.SelectNodes("//tr")) { var childnode = selectNode.ChildNodes; if (childnode.Count == 7) { try { MonHoc mh = new MonHoc(); mh.MaMonHoc = childnode[0].InnerText; mh.TenMonHoc = childnode[1].InnerText; mh.SoTC = int.Parse(childnode[2].InnerText); mh.DiemTongKet = float.Parse(childnode[5].InnerText); if (kq.Any(x => x.MaMonHoc == mh.MaMonHoc)) { var t = kq.First(x => x.MaMonHoc == mh.MaMonHoc); t.DiemTongKet = Math.Max(t.DiemTongKet, mh.DiemTongKet); } else kq.Add(mh); } catch (Exception) { } } } return kq; }