//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); }
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); }
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); }