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