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