/// <summary> /// Get a podcast and the list of episodes /// </summary> /// <param name="feedUrl">The podcast RSS feed</param> /// <returns></returns> public async Task <PodcastRequestResult> GetPodcastEpisodesAsync(string feedUrl) { if (feedUrl == null) { throw new ArgumentNullException(nameof(feedUrl)); } Uri url = new Uri(feedUrl); string xml = await WebRequestAsync(url).ConfigureAwait(false); PodcastRequestResult result = XmlHelper.ParsePodcast(xml); result.Podcast.FeedUrl = feedUrl; return(result); }
private void CheckPodcastInfos(PodcastRequestResult requestResult) { Assert.IsNotNull(requestResult.Podcast.Name); int episodesCount = requestResult.Episodes.Count(); foreach (PodcastEpisode episode in requestResult.Episodes) { Assert.IsFalse(string.IsNullOrWhiteSpace(episode.Title)); Assert.AreEqual(episodesCount--, episode.EpisodeNumber); Assert.IsNotNull(episode.FileUrl); Assert.IsFalse(string.IsNullOrWhiteSpace(episode.InnerXml)); Assert.AreNotEqual(episode.Duration, default(TimeSpan)); } Assert.AreEqual(requestResult.Episodes.Count(), requestResult.Podcast.EpisodesCount); Assert.IsFalse(string.IsNullOrWhiteSpace(requestResult.Podcast.InnerXml)); }