Example #1
0
        public static Podcast FromRoamingData(IServiceContext serviceContext, RoamingPodcastData data)
        {
            Podcast podcast = new Podcast(serviceContext);

            podcast.Title      = data.Title;
            podcast.PodcastUri = data.Uri;
            ConcurrentObservableCollection <Episode> episodes = new ConcurrentObservableCollection <Episode>(s_EpisodeOrdering, true);

            podcast.Episodes = episodes;
            foreach (RoamingEpisodeData episodeData in data.RoamingEpisodesData)
            {
                episodes.Add(Episode.FromRoamingData(serviceContext, podcast.FileName, episodeData));
            }
            podcast.Episodes.HoldNotifications = false;
            return(podcast);
        }
Example #2
0
        public RoamingPodcastData ToRoamingData()
        {
            RoamingPodcastData data = new RoamingPodcastData()
            {
                Uri   = PodcastUri,
                Title = Title
            };
            List <RoamingEpisodeData> episodes = new List <RoamingEpisodeData>();

            data.RoamingEpisodesData = episodes;
            foreach (Episode episode in Episodes)
            {
                // Store as little as possible in roaming settings.
                // If there is no Position to record or this has not been played, we can rely on the default values upon deserialization
                if (episode.Position > TimeSpan.FromTicks(0) || episode.Played)
                {
                    episodes.Add(episode.ToRoamingData());
                }
            }
            return(data);
        }