Exemplo n.º 1
0
        public List<TimetableItem> GetTimetableForYear(StudyYear year, HalfYear halfYear = HalfYear.None)
        {
            List<TimetableItem> timetable;

            string tempYear = Enum.GetName(typeof(StudyYear), year);
            string tempHalfYear = Enum.GetName(typeof(HalfYear), halfYear);
            if (tempHalfYear == "None") tempHalfYear = String.Empty;

            try
            {
                HtmlWeb hw = new HtmlWeb();
                HtmlDocument doc = hw.Load(String.Format("http://thor.info.uaic.ro/~orar/participanti/orar_{0}{1}.html", tempYear, halfYear));
                doc.DocumentNode.InnerHtml = doc.DocumentNode.InnerHtml.Replace("\r\n", "");

                timetable = ParseTable(doc, TimetableType.Year);
            }
            catch (WebException ex)
            {
                Logger.ExceptionLogger.Log(ex);
                timetable = null;
            }
            catch (NotSupportedException ex)
            {
                Logger.ExceptionLogger.Log(ex);
                timetable = null;
            }
            return timetable;
        }
 public SinglePartitionQueryingTest(int year, HalfYear halfYear, string query = null,string connection=null)
     : base(query,connection)
 {
     HalfYear = halfYear;
     Year = year;
     if (String.IsNullOrWhiteSpace(Query)) {
         Query = DEFAULT_QUERY;
     }
     Query = String.Format(Query, Year, (int) HalfYear);
 }
Exemplo n.º 3
0
 public string GetXMLTimetableForBachelorYear(StudyYear year, HalfYear halfYear)
 {
     var subjectsBL = new SubjectsBL();
     return _exporter.ConvertToXML(_parser.GetTimetableForYear(year, halfYear), subjectsBL.GetAllSubjects());
 }
Exemplo n.º 4
0
 public List<FiiTimetableItem> GetTimetableForBachelorYear(StudyYear year, HalfYear halfYear)
 {
     return _parser.GetTimetableForYear(year, halfYear);
 }
Exemplo n.º 5
0
 private List<TimetableItem> ParseTable(HtmlDocument document, TimetableType type, StudyYear studyYear = StudyYear.None, HalfYear halfYear = HalfYear.None, string groupNumber = "")
 {
     List<TimetableItem> timetable = new List<TimetableItem>();
     if (document.DocumentNode.Descendants("table").Count() > 0)
     {
         foreach (HtmlNode table in document.DocumentNode.Descendants("table"))
         {
             DayOfWeek day = DayOfWeek.Monday;
             foreach (HtmlNode tableRow in table.Descendants("tr"))
             {
                 bool isDirty = false;
                 if (tableRow.Attributes.Count == 0)
                 {
                     TimetableItem item = null;
                     int index = 0;
                     foreach (HtmlNode tableCell in tableRow.Descendants("td"))
                     {
                         string innerText = tableCell.InnerText.Trim();
                         if (tableCell.Attributes.Count > 0 && tableCell.Attributes[0].Value == "10")
                         {
                             day = new DayOfWeek();
                             day = GetDayFromCell(innerText);
                         }
                         else
                         {
                             switch (index)
                             {
                                 case 0:
                                     item = new TimetableItem();
                                     item.Day = day;
                                     int startHours;
                                     int startMinutes;
                                     if (Int32.TryParse(innerText.Substring(0, 2), out startHours) &&
                                         Int32.TryParse(innerText.Substring(3, 2), out startMinutes))
                                     {
                                         item.StartTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, startHours, startMinutes, 0);
                                     }
                                     break;
                                 case 1:
                                     int endHours;
                                     int endMinutes;
                                     if (Int32.TryParse(innerText.Substring(0, 2), out endHours) &&
                                         Int32.TryParse(innerText.Substring(3, 2), out endMinutes))
                                     {
                                         item.EndTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, endHours, endMinutes, 0);
                                     }
                                     break;
                                 case 2:
                                     if (type == TimetableType.Year)
                                     {
                                         item.StudyGroup = GetGroupFromCell(innerText);
                                         index--;
                                         type = TimetableType.Group;
                                         isDirty = true;
                                     }
                                     else
                                     {
                                         item.ClassName = innerText;
                                         if (item.StudyGroup == null)
                                         {
                                             item.StudyGroup = new Group
                                             {
                                                 YearOfStudy = studyYear,
                                                 HalfYearOfStudy = halfYear,
                                                 Number = groupNumber
                                             };
                                         }
                                         if (isDirty)
                                             type = TimetableType.Year;
                                     }
                                     break;
                                 case 3:
                                     item.TypeOfClass = GetClassTypeFromCell(innerText);
                                     break;
                                 case 4:
                                     item.TeacherName = innerText;
                                     break;
                                 case 5:
                                     item.RoomNumber = innerText;
                                     break;
                                 case 6:
                                     item.Frequency = GetFrequencyFromCell(innerText);
                                     break;
                                 case 7:
                                     item.OptionalPackage = GetOptionalPackageFromCell(innerText);
                                     break;
                             }
                             index++;
                         }
                     }
                     if (item != null)
                         timetable.Add(item);
                 }
             }
         }
     }
     return timetable;
 }