コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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();
                }
            }
        }