Ejemplo n.º 1
0
            //      private static IEnumerable<IEnumerable<NewsEvent>> ParseDay(HAP.HtmlDocument doc, DateTime date) {
            //        var trsEvents = doc.DocumentNode.SelectNodes("//tr@class='dailyeventtext']");
            //        trsEvents.Aggregate(
            //          new List<NewsEvent>(),
            //          (list, tr) => {
            //            var tds = tr.SelectNodes("td");
            //            var time = date.Date.Add(ParseEventDate(tds[0].InnerText.Decode()).TimeOfDay);
            //            var name = tds[2].InnerText.Decode().Trim();
            //            var country = name.Split(':').FirstOrDefault();
            //            if (string.IsNullOrWhiteSpace(country)) country = "ALL";
            //            else name = name.Substring(country.Length + 1);

            //            list.Add(new NewsEvent {
            //            });
            //            return list;
            //          }
            //          );
            ////        var newsEvent = new NewsEvent();

            //        var weekDay = ParseWeekDate(tdsWeekDay[0].InnerText.Decode() + " " + date.Year);
            //        var weekDays = new List<DateTimeOffset>(Enumerable.Range(0, 5).Select(i => weekDay.AddDays(i)));
            //        weekDays.Add(weekDays.Last().AddDays(2));

            //        var trEvents = tableEvents.SelectNode("tr/td[@class='events']/..");
            //        var tds = trEvents.SelectNodes("td");
            //        var news = tds.Take(5).Aggregate(new List<IEnumerable<NewsEvent>>(),
            //        (list0, td) => {
            //          var ne = ParseEventTD(weekDays, list0.Count, td);
            //          list0.Add(ne);
            //          return list0;
            //        });
            //        var tdEventsFri = tableEvents.SelectCollection("tr/td[@class='eventsfri']/..", true).Last().Element("td");
            //        news.Add(ParseEventTD(weekDays, news.Count, tdEventsFri));
            //        return news.Aggregate(new List<IEnumerable<NewsEvent>>(),
            //          (list, events) => {
            //            list.Add(events.Where(evt => evt.Level != NewsEventLevel.Low));
            //            return list;
            //          });
            //      }

            private static List <NewsEvent> ParseEventTD(List <DateTimeOffset> weekDays, int columnIndex, HAP.HtmlNode td)
            {
                var ne = td.SelectCollection("div[@class='econoevents']", false)
                         .Aggregate(new List <NewsEvent>(),
                                    (list1, div) => {
                    ParseEventDiv(weekDays, columnIndex, list1, div);
                    return(list1);
                });

                return(ne);
            }