Esempio n. 1
0
        public void GetTVEpisodesForShow_ValidShow_GroupedEpisodes()
        {
            //  Arrange
            iTunesSearchManager search = new iTunesSearchManager();
            string showName            = "Modern Family";

            //  Act
            var items   = search.GetTVEpisodesForShow(showName, 200).Result;
            var seasons = from episode in items.Episodes
                          orderby episode.Number
                          group episode by episode.SeasonNumber into seasonGroup
                          orderby seasonGroup.Key
                          select seasonGroup;

            //  Assert
            foreach (var seasonGroup in seasons)
            {
                Debug.WriteLine("Season number: {0}", seasonGroup.Key);

                foreach (TVEpisode episode in seasonGroup)
                {
                    Debug.WriteLine("Ep {0}: {1}", episode.Number, episode.Name);
                }
            }
        }
Esempio n. 2
0
        public void GetTVEpisodesForShow_ValidShow_ReturnsEpisodes()
        {
            //  Arrange
            iTunesSearchManager search = new iTunesSearchManager();
            string showName            = "Modern Family";

            //  Act
            var items = search.GetTVEpisodesForShow(showName, 200).Result;

            //  Assert
            Assert.IsTrue(items.Episodes.Any());
        }
Esempio n. 3
0
        public void GetTVEpisodesForShow_ValidShowAndCountryCode_ReturnsEpisodes()
        {
            //  Arrange
            iTunesSearchManager search = new iTunesSearchManager();
            string showName            = "Top of the Lake";
            string countryCode         = "AU"; /* Australia */

            //  Act
            var items = search.GetTVEpisodesForShow(showName, 200, countryCode).Result;

            //  Assert
            Assert.IsTrue(items.Episodes.Any());
        }
Esempio n. 4
0
        private async void cmdSearch_Click(object sender, RoutedEventArgs e)
        {
            cmdSearch.IsEnabled = false;

            //  Get the results
            TVEpisodeListResult results = await iTunes.GetTVEpisodesForShow(txtSearch.Text, 500, lstCountries.SelectedValue.ToString().ToLower());

            //  Clear our tvshows observable:
            tvShows.Clear();

            //  Group into seasons
            var seasons = from episode in results.Episodes
                          orderby episode.Number
                          group episode by new { episode.ShowName, episode.SeasonNumber } into seasonGroup
            orderby seasonGroup.Key.ShowName, seasonGroup.Key.SeasonNumber
            select seasonGroup;

            //  Create our structure:
            foreach (var seasonGroup in seasons)
            {
                //  Filter our episodes:
                var filteredEpisodes = from episode in seasonGroup
                                       where episode.Price > 0
                                       select episode;

                if (filteredEpisodes.Any())
                {
                    //  Create the show result
                    TVShowSeachResult tvResult = new TVShowSeachResult()
                    {
                        SeasonNumber = seasonGroup.Key.SeasonNumber
                    };

                    //  Get the episode along with its ordinal position
                    var filteredEpisodesWithPosition = (from episode in filteredEpisodes
                                                        select episode).Select((episode, index) =>
                                                                               new
                    {
                        Episode         = episode,
                        OrdinalPosition = index + 1
                    });

                    //  Add the episodes
                    tvResult.Episodes = (from item in filteredEpisodesWithPosition
                                         select new EpisodeInfo()
                    {
                        Name = item.Episode.Name,
                        Description = item.Episode.DescriptionLong,
                        ShowId = item.Episode.ShowId,
                        SeasonId = item.Episode.SeasonId,
                        ShowName = item.Episode.ShowName,
                        EpisodeNumber = item.OrdinalPosition,
                        SeasonNumber = item.Episode.SeasonNumber,
                        Rating = item.Episode.Rating,
                        RunTime = TimeSpan.FromMilliseconds(Convert.ToDouble(item.Episode.RuntimeInMilliseconds)).ConciseFormat()
                    }).ToList();

                    //  Set the show properties
                    tvResult.ArtworkUrl = filteredEpisodes.First().ArtworkUrl;
                    tvResult.ShowName   = filteredEpisodes.First().ShowName;

                    //  Add the result to the list:
                    tvShows.Add(tvResult);
                }
            }

            cmdSearch.IsEnabled = true;
        }