public void AddSchedule(TeachClassSchedules schedule) { this.Schedules.Add(schedule); switch (schedule.WeekDay.ToLower()) { case "segunda": this.Monday = true; break; case "terça": this.Tuesday = true; break; case "quarta": this.Wednesday = true; break; case "quinta": this.Thursday = true; break; case "sexta": this.Friday = true; break; case "sabado": this.Saturday = true; break; case "domingo": this.Sunday = true; break; } }
public async Task LoadAsync() { var Document = base.Content; Regex rgx = new Regex(@"Alunos não atendidos por falta de vagas", RegexOptions.IgnoreCase); var matches = rgx.Matches(Document.DocumentNode.InnerHtml); if (matches.Count > 0) { this.Vacant = false; } else { this.Vacant = true; } var divTablesResponsive = Document.DocumentNode.Descendants("div").Where(w => w.GetAttributeValue("class", "").Equals("table-responsive") && !string.IsNullOrWhiteSpace(w.GetAttributeValue("style", ""))); foreach (var divTable in divTablesResponsive) { var tableDisipline = divTable.Descendants("table").Where(w => w.GetAttributeValue("class", "").Equals("table table-striped table-bordered tabela-oferta"))?.FirstOrDefault(); //?.Descendants("tbody")?.FirstOrDefault(); if (tableDisipline != null) { this.Credits = Document.DocumentNode.Descendants("div").Where(w => w.GetAttributeValue("class", "").Equals("table-responsive") && string.IsNullOrWhiteSpace(w.GetAttributeValue("style", "")))?.FirstOrDefault()?.FirstChild?.LastChild?.LastChild?.InnerText ?? ""; var teachClass = new TeachClass(); this.TeachClasses.Add(teachClass); int aux = 0; foreach (var tbodyClass in tableDisipline.LastChild.ChildNodes) { aux++; if (aux == 1) { teachClass.Name = tbodyClass.Descendants("td")?.ToList()[0]?.InnerText ?? ""; continue; } if (aux == 2) { var tableVacancies = tbodyClass.Descendants("table")?.FirstOrDefault(); if (tableVacancies != null) { foreach (var trVancacies in tableVacancies.Descendants("tr")) { var qualifier = trVancacies.Descendants("td")?.ToList()[1]?.InnerText ?? ""; var value = trVancacies.Descendants("td")?.LastOrDefault()?.InnerText ?? ""; switch (qualifier) { case "Vagas": teachClass.TotalVacancy = value; break; case "Ocupadas": teachClass.FilledVacancy = value; break; case "Restantes": teachClass.LeftVacancy = value; break; } } } continue; } if (aux == 3) { teachClass.Shift = tbodyClass.Descendants("td").FirstOrDefault(w => w.GetAttributeValue("colspan", "").Any())?.InnerText ?? ""; continue; } if (aux == 4) { var tablesSchedule = tbodyClass.Descendants("table"); if (tablesSchedule != null) { foreach (var table in tablesSchedule) { if (table.Descendants("td").Any(w => !string.IsNullOrWhiteSpace(w.GetAttributeValue("style", "")))) { var schedule = new TeachClassSchedules(); int auxTr = 0; foreach (var tdTable in table.Descendants("td")) { auxTr++; if (auxTr == 1) { schedule.WeekDay = tdTable.InnerText ?? ""; } if (auxTr == 2) { schedule.StartTime = tdTable.InnerText ?? ""; } if (auxTr == 3) { schedule.EndTime = tdTable.InnerText ?? ""; } if (auxTr == 5) { schedule.Class = tdTable.InnerText ?? ""; } } teachClass.AddSchedule(schedule); } else { teachClass.Professor = table.InnerText; } } } continue; } if (aux == 5) { teachClass.Professor = tbodyClass.Descendants("td")?.FirstOrDefault()?.InnerText ?? ""; continue; } if (aux == 6) { teachClass.Remark = tbodyClass.Descendants("img")?.FirstOrDefault()?.GetAttributeValue("alt", "") ?? ""; continue; } } this.LoadRequirements(); } } }