コード例 #1
0
        //public Task<PaginatedList<MovieResponseModel>> GetAllPurchasesByMovieId(int movieId)
        //{
        //    throw new NotImplementedException();
        //}
        //public Task<PagedResultSet<MovieResponseModel>> GetMoviesByPagination(int pageSize = 20, int page = 0, string title = "")
        //{
        //    throw new NotImplementedException();
        //}
        public async Task <MovieDetailsResponseModel> GetMovieAsync(int id)
        {
            var movie = await _movieRepository.GetByIdAsync(id);

            var count = await _favoriteRepository.GetCountAsync(f => f.MovieId == id);

            var movieDetails = new MovieDetailsResponseModel
            {
                Id          = movie.Id,
                Title       = movie.Title,
                PosterUrl   = movie.PosterUrl,
                BackdropUrl = movie.BackdropUrl,
                //Rating = movie.Rating,
                Overview       = movie.Overview,
                Tagline        = movie.Tagline,
                Budget         = movie.Budget,
                Revenue        = movie.Revenue,
                ImdbUrl        = movie.ImdbUrl,
                TmdbUrl        = movie.TmdbUrl,
                ReleaseDate    = movie.ReleaseDate,
                RunTime        = movie.RunTime,
                Price          = movie.Price,
                FavoritesCount = count
            };
            var genres = new List <Genre>();

            foreach (var movieGenre in movie.MovieGenre)
            {
                var genre = await _genreRepository.GetByIdAsync(movieGenre.GenreId);

                var response = new Genre
                {
                    Id   = genre.Id,
                    Name = genre.Name
                };
                genres.Add(response);
            }
            movieDetails.Genres = genres;
            var casts = new List <MovieDetailsResponseModel.CastResponseModel>();

            foreach (var movieCast in movie.MovieCast)
            {
                var cast = await _castRepository.GetByIdAsync(movieCast.CastId);

                var response = new MovieDetailsResponseModel.CastResponseModel
                {
                    Id          = cast.Id,
                    Name        = cast.Name,
                    Gender      = cast.Gender,
                    TmdbUrl     = cast.TmdbUrl,
                    ProfilePath = cast.ProfilePath,
                    Character   = movieCast.Charater
                };
                casts.Add(response);
            }
            movieDetails.Casts = casts;
            return(movieDetails);
        }
コード例 #2
0
        public async Task <MovieDetailsResponseModel> GetMovieAsync(int id)
        {
            var movie = await _repo.GetByIdAsync(id);

            //if (movie == null) throw new NotFoundException("Movie", id);
            //var favoritesCount = await _favoriteRepository.GetCountAsync(f => f.MovieId == id);
            var response = new MovieDetailsResponseModel
            {
                Id          = movie.Id,
                Title       = movie.Title,
                PosterUrl   = movie.PosterUrl,
                BackdropUrl = movie.BackdropUrl,
                //Rating =,
                Overview    = movie.Overview,
                Tagline     = movie.Tagline,
                Budget      = movie.Budget,
                Revenue     = movie.Revenue,
                ImdbUrl     = movie.ImdbUrl,
                TmdbUrl     = movie.TmdbUrl,
                ReleaseDate = movie.ReleaseDate,
                RunTime     = movie.RunTime,
                Price       = movie.Price,
                Genres      = movie.Genres.ToList()

                              //FavoriteCount = ;
            };
            var castList = new List <MovieDetailsResponseModel.CastResponseModel>();

            foreach (var cast in movie.MovieCasts)
            {
                var c = await _castRepo.GetByIdAsync(cast.CastId);

                var responseModel = new MovieDetailsResponseModel.CastResponseModel();
                PropertyCopy.Copy(responseModel, c);
                castList.Add(responseModel);
            }

            response.Casts = castList;
            //response.FavoritesCount = favoritesCount;
            return(response);
        }
コード例 #3
0
        public async Task <MovieDetailsResponseModel> GetMovieAsync(int id)
        {
            var moive = await _repository.GetByIdAsync(id);

            if (moive == null)
            {
                return(null);
            }
            var response = new MovieDetailsResponseModel
            {
                Id          = moive.Id, Title = moive.Title, PosterUrl = moive.PosterUrl, BackdropUrl = moive.BackdropUrl,
                Budget      = moive.Budget, ImdbUrl = moive.ImdbUrl, Overview = moive.Overview, TmdbUrl = moive.TmdbUrl,
                ReleaseDate = moive.ReleaseDate, RunTime = moive.RunTime, Price = moive.Price, Revenue = moive.Revenue,
                Tagline     = moive.Tagline
            };
            List <MovieDetailsResponseModel.CastResponseModel> casts = new List <MovieDetailsResponseModel.CastResponseModel>();

            foreach (var movieCast in moive.MovieCasts)
            {
                var cast = movieCast.Cast;
                var castResponseModel = new MovieDetailsResponseModel.CastResponseModel();
                castResponseModel.Id          = cast.Id;
                castResponseModel.Name        = cast.Name;
                castResponseModel.Gender      = cast.Gender;
                castResponseModel.ProfilePath = cast.ProfilePath;
                castResponseModel.TmdbUrl     = cast.TmdbUrl;
                castResponseModel.Character   = movieCast.Character;
            }
            response.Casts = casts;

            List <Genre> genres = new List <Genre>();

            foreach (var movieGenre in moive.MovieGenres)
            {
                genres.Add(movieGenre.Genre);
            }
            response.Genres         = genres;
            response.FavoritesCount = moive.Favorites.Count;
            return(response);
        }