예제 #1
0
        public async Task <IList <Movie> > GetMoviesByCriteria(SearchCriteria criteria)
        {
            //Prepare action
            DiscoverMovieAction action = await CreateDiscoveryAction(criteria);

            //Execute discovery action

            /* OUT for NOW, only get 1 page of results
             * List<MovieSearchResultItem> results = new List<MovieSearchResultItem>();
             * PagedResultList<MovieSearchResultItem> discoveryResult;
             * do
             * {
             *      discoveryResult = await action.Execute(_Client);
             *      results.AddRange(discoveryResult.results);
             * }
             * while (discoveryResult.page < discoveryResult.total_pages);
             * //Get movie details
             * IList<MovieDetailsResultItem> movieDetails = await GetMovieDetails(results);*/

            PagedResultList <MovieSearchResultItem> discoveryResult = await action.Execute(_Client);

            //Get movie details
            IList <MovieDetailsResultItem> movieDetails = await GetMovieDetails(discoveryResult.results);

            //Process results
            List <Movie> result = new List <Movie>();

            foreach (var item in movieDetails)
            {
                result.Add(TransformToDomain(item));
            }
            return(result);
        }
예제 #2
0
        private async Task <DiscoverMovieAction> CreateDiscoveryAction(SearchCriteria criteria)
        {
            DiscoverMovieAction action = new DiscoverMovieAction()
                                         .SetGenres(_GenreProvider.GetGenreIds(criteria.Genres))
                                         .SetMaxDate(criteria.EndDate)
                                         .SetKeywords(await _KeywordProvider.GetKeywordIds(criteria.Keywords));

            if (criteria.UpcomingOnly)
            {
                action.SetReleaseTypes(new List <int> {
                    2, 3
                });
                action.SetMinDate(DateTime.Now);
            }
            return(action);
        }
예제 #3
0
 public void TearDown()
 {
     TestObject = null;
 }
예제 #4
0
 public void Setup()
 {
     TestObject = new DiscoverMovieAction();
 }