Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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;
            }
        }