/// <summary> /// Executes once LoadRequest has executed. Will also happen when deserializing cached data /// </summary> public override object Deserialize(DayLoadContext loadContext, Type objectType, Stream stream) { if (stream == null) { throw new ArgumentNullException("stream"); } string html = PageParser.GetHtml(stream); var entries = PageParser.ExtractEntriesFromHtml(html, false); var viewModel = new EventsViewModel(loadContext); if (loadContext.ReverseOrder) { entries.Reverse(); } var groupings = entries.GroupBy(PageParser.GroupByYear()); foreach (IGrouping <string, Entry> grouping in groupings) { var displayGroup = new GroupedEntries { Name = grouping.Key, Entries = grouping.ToList() }; viewModel.Events.Add(displayGroup); } return(viewModel); }
/// <summary> /// Executes once LoadRequest has executed. Will also happen when deserializing cached data /// </summary> public override object Deserialize(DayLoadContext loadContext, Type objectType, Stream stream) { if (stream == null) { throw new ArgumentNullException("stream"); } string html = PageParser.GetHtml(stream); List <Entry> entries = PageParser.ExtractEntriesFromHtml(html, true); var viewModel = new DayViewModel(loadContext); if (loadContext.ReverseOrder) { for (int i = entries.Count - 1; i >= 0; i--) { viewModel.Highlights.Add(entries[i]); } } else { foreach (Entry entry in entries) { viewModel.Highlights.Add(entry); } } return(viewModel); }