コード例 #1
0
        public MoviePoco Map(MovieTmdb movieTmdb, MovieOmdb movieOmdb)
        {
            var movieGenres = new List <MovieGenre>();

            foreach (var genre in movieTmdb.Genres)
            {
                var movieGenre = new MovieGenre
                {
                    Title    = movieOmdb.Title,
                    Released = movieOmdb.Released,
                    GenreId  = genre.Id
                };

                movieGenres.Add(movieGenre);
            }

            var movie = new MoviePoco
            {
                Title       = movieOmdb.Title,
                Released    = movieOmdb.Released,
                ImdbRating  = movieOmdb.ImdbRating,
                Metascore   = movieOmdb.Metascore,
                TomatoMeter = movieOmdb.TomatoMeter,
                ImdbVotes   = movieOmdb.ImdbVotes,
                Runtime     = movieOmdb.Runtime,
                Plot        = movieOmdb.Plot,
                Director    = movieOmdb.Director,
                Awards      = movieOmdb.Awards,
                MovieGenres = movieGenres
            };

            return(movie);
        }
コード例 #2
0
        public async Task <MovieOmdb> GetMovieByImdbId(string id)
        {
            var path = FormatPath(OmdbClientHelper.ImdbIdFlag, id);

            MovieOmdb movie = null;

            while (movie == null)
            {
                var response = await _client.GetAsync(path);

                if (response.IsSuccessStatusCode && response.Content != null)
                {
                    var requestContent = await response.Content.ReadAsStringAsync();

                    movie = JsonConvert.DeserializeObject <MovieOmdb>(requestContent);
                }

                if (response.StatusCode == (HttpStatusCode)429)
                {
                    await Task.Delay(3000);
                }
            }

            return(movie);
        }
コード例 #3
0
        public void ItReturns_CorrectPoco_FromTmdbOmdbDtos(MovieOmdb omdb, MovieTmdb tmdb)
        {
            var moviesMapper = new MoviesMapper();

            var moviesPoco = moviesMapper.Map(tmdb, omdb);

            bool movieGenresMappedCorrectly = true;

            for (var i = 0; i < tmdb.Genres.Length; i++)
            {
                var movieGenre = moviesPoco.MovieGenres.ElementAt(i);

                if (movieGenre.GenreId != tmdb.Genres[i].Id ||
                    movieGenre.Title != omdb.Title ||
                    movieGenre.Released != omdb.Released)
                {
                    movieGenresMappedCorrectly = false;
                }
            }


            Assert.True(movieGenresMappedCorrectly);
            Assert.Equal(omdb.ImdbVotes, moviesPoco.ImdbVotes);
            Assert.Equal(omdb.Awards, moviesPoco.Awards);
            Assert.Equal(omdb.Director, moviesPoco.Director);
            Assert.Equal(omdb.ImdbRating, moviesPoco.ImdbRating);
            Assert.Equal(omdb.Metascore, moviesPoco.Metascore);
            Assert.Equal(omdb.Plot, moviesPoco.Plot);
            Assert.Equal(omdb.Released, moviesPoco.Released);
            Assert.Equal(omdb.Runtime, moviesPoco.Runtime);
            Assert.Equal(omdb.Title, moviesPoco.Title);
            Assert.Equal(omdb.TomatoMeter, moviesPoco.TomatoMeter);
        }
コード例 #4
0
        public async Task <MovieOmdb> GetMovieByTitle(string title)
        {
            var path = FormatPath(OmdbClientHelper.TitleFlag, title);

            var response = await _client.GetAsync(path);

            MovieOmdb movie = null;

            if (response.IsSuccessStatusCode && response.Content != null)
            {
                var requestContent = await response.Content.ReadAsStringAsync();

                movie = JsonConvert.DeserializeObject <MovieOmdb>(requestContent);
            }

            return(movie);
        }