Ejemplo n.º 1
0
        public IEnumerable <Meeting> GetResult()
        {
            if (_meetings == null)
            {
                _meetings = new List <Meeting>();

                foreach (string major in _majors)
                {
                    foreach (Period period in _periods)
                    {
                        if (period.Semester == Semester.Winter)
                        {
                            continue;
                        }

                        Fetcher f = new Fetcher(Source.Web, $@"https://sunspot.sdsu.edu/schedule/search?mode=search&period={period.Code()}&admin_unit=R&abbrev={major}");
                        Parser  p = new Parser(f.Document, Parser.SelectByClassPattern("sectionMeeting"));

                        Course c_tmp   = null;
                        int    sec_tmp = -1;
                        int    sch_tmp = -1;
                        float  u_tmp   = 0f;
                        foreach (HtmlNode node in p.Nodes)
                        {
                            SdsuMeetingBuilder b = new SdsuMeetingBuilder(period, node);

                            Period   per        = b.BuildPeriod();
                            Course   course     = b.BuildCourse() ?? c_tmp;
                            int      section    = b.BuildSection();
                            int      schedule   = b.BuildSchedule();
                            float    units      = b.BuildUnits();
                            Format   format     = b.BuildFormat();
                            Time     time       = b.BuildTime();
                            Day      days       = b.BuildDay();
                            Location location   = b.BuildLocation();
                            string   instructor = b.BuildInstructor();

                            Meeting m = new Meeting(
                                period,
                                course,
                                section == -1 ? sec_tmp : section,
                                schedule == -1 ? sch_tmp : schedule,
                                units < -1 ? u_tmp : units,
                                format,
                                time,
                                days,
                                location,
                                instructor
                                );
                            _meetings.Add(m);

                            c_tmp   = course;
                            sec_tmp = section;
                            sch_tmp = schedule;
                            u_tmp   = units;
                        }
                    }
                }
            }
            return(_meetings);
        }
 public void SetUp()
 {
     fetcher = new Fetcher(Source.Local, CONSTANTS.SdsuHTMLPath, "");
     parser  = new Parser(fetcher.Document, Parser.SelectByClassPattern("sectionMeeting"));
     builder = new SdsuMeetingBuilder(Semester.Fall, 2014, parser.Nodes[0]);
 }