// 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); }