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