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