public static async Task <List <DersModeli> > dersKontrol(string dersAdi, string dersKodu, string donemKodu) { string pattern = $"{dersAdi} {dersKodu}\\S*"; Regex regex = new Regex(pattern); int counter = 1; List <DersModeli> dogruDersler = new List <DersModeli>(); string url = $"https://suis.sabanciuniv.edu/prod/bwckschd.p_get_crse_unsec?term_in={donemKodu}&sel_subj=dummy&sel_day=dummy&sel_schd=dummy&sel_insm=dummy&sel_camp=dummy&sel_levl=dummy&sel_sess=dummy&sel_instr=dummy&sel_ptrm=dummy&sel_attr=dummy&sel_subj={dersAdi}&sel_crse={dersKodu}&sel_title=&sel_from_cred=&sel_to_cred=&begin_hh=0&begin_mi=0&begin_ap=a&end_hh=0&end_mi=0&end_ap=a"; icerik = await web.LoadFromWebAsync(url); counterTime += 1; while (true) { string TamDersAdi = ""; DersModeli yeniders = new DersModeli(); var section = icerik.DocumentNode.SelectNodes(baseString + $"/tr[{counter}]/th/a"); if (section == null) { break; } string sectionString = section.First().InnerText; var eslesme = Regex.Match(sectionString, pattern); if (eslesme == null) { continue; } TamDersAdi = eslesme.Value; if (!dogruDersler.Any(x => x.TamDersAdi == TamDersAdi)) { yeniders.TamDersAdi = TamDersAdi; dogruDersler.Add(yeniders); } counter += 2; } return(dogruDersler); }
private static bool sectListKarsilastir(DersModeli dersBilgisi, List <ZamanModel> butunZamanlar) { foreach (SectionModel section in dersBilgisi.Sectionlar) { sectKarsilastir(section, butunZamanlar); } if (dersBilgisi.Sectionlar.All(x => !sectKarsilastir(x, butunZamanlar))) { return(false); } return(true); }
private static void ZamanEkle(DersModeli kontrolluDersler, HtmlDocument icerik, int sectionCounter) { foreach (SectionModel section in kontrolluDersler.Sectionlar) { string sectionExtensionString = $"/tr[{sectionCounter}]/td[1]/table"; int saatCounter = 2; section.SectionSaatleri = new List <ZamanModel>(); while (true) { string saatExtensionString = $"/tr[{saatCounter}]"; StringBuilder body = new StringBuilder(); body.Append(baseString); body.Append(sectionExtensionString); body.Append(saatExtensionString); string fullString = body.ToString(); var saat = icerik.DocumentNode.SelectNodes($"{fullString}/td[2]"); var gun = icerik.DocumentNode.SelectNodes($"{fullString}/td[3]"); if (gun == null || saat == null) { break; } string gunString = gun.First().InnerText; string saatString = saat.First().InnerText; stringiZamanModelYap(gunString, saatString, section); saatCounter += 1; } sectionCounter += 2; } }