public async Task <MovieDetailsResponseModel> GetMovieDetailByMovie(int id) { var movieDetail = await _movieRepository.GetMovieDetailById(id); if (movieDetail == null) { throw new NotFoundException("Movie", id); } // for genre var genres = new List <GenreModel>(); foreach (var genre in movieDetail.Genres) { genres.Add(new GenreModel { Id = genre.Id, Name = genre.Name }); } // for cast detail var casts = new List <CastResponseModel>(); foreach (var item in movieDetail.MovieCasts) { casts.Add(new CastResponseModel { Id = item.Casts.Id, Name = item.Casts.Name, Gender = item.Casts.Gender, ProfilePath = item.Casts.ProfilePath, Character = item.Character }); } // for movie facts +genres + cast detail var response = new MovieDetailsResponseModel() { Id = movieDetail.Id, Title = movieDetail.Title, PosterUrl = movieDetail.PosterUrl, BackdropUrl = movieDetail.BackdropUrl, Rating = movieDetail.Rating, Overview = movieDetail.Overview, Tagline = movieDetail.Tagline, Budget = movieDetail.Budget, Revenue = movieDetail.Revenue, ImdbUrl = movieDetail.ImdbUrl, TmdbUrl = movieDetail.TmdbUrl, ReleaseDate = movieDetail.ReleaseDate, RunTime = movieDetail.RunTime, Price = movieDetail.Price, Genres = genres, Casts = casts }; return(response); }
public async Task <List <MovieDetailsResponseModel> > GetAllMovies() { var movieDetailsResponse = new List <MovieDetailsResponseModel>(); var movies = await _movieRepository.GetMovies(); foreach (var movie in movies) { var movieDetails = new MovieDetailsResponseModel { Id = movie.Id, PosterUrl = movie.PosterUrl, Revenue = movie.Revenue, Title = movie.Title, OriginalLanguage = movie.OriginalLanguage, ReleaseDate = movie.ReleaseDate, RunTime = movie.RunTime, Price = movie.Price }; movieDetailsResponse.Add(movieDetails); } return(movieDetailsResponse); /* return movieDetails;*/ }
public async Task <MovieDetailsResponseModel> GetMovieAsync(int id) { var movie = await _movieRepository.GetByIdAsync(id); var count = await _favoriteRepository.GetFavoriteCount(id); var responseMovie = 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.Value, RunTime = movie.RunTime, Price = movie.Price, FavoritesCount = count }; return(responseMovie); }
//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> GetMovieDetailsAsync(int id) { var movie = await _movieRepository.GetByIdAsync(id); var movieResult = new MovieDetailsResponseModel(); movieResult.Casts = new List <CastDetailsResponseModel>(); movieResult.Genre = new List <GenreForParticularMovieModel>(); //Cast foreach (var cast in movie.MovieCast) { movieResult.Casts.Add( new CastDetailsResponseModel { Id = cast.CastId, Character = cast.Character, Name = cast.Cast.Name, ProfilePath = cast.Cast.ProfilePath }); } // Genre foreach (var genre in movie.Genres) { movieResult.Genre.Add( new GenreForParticularMovieModel { Id = genre.Id, Name = genre.Name }); } movieResult.Id = movie.Id; movieResult.ReleaseDate = (DateTime)movie.ReleaseDate; movieResult.RunTime = movie.RunTime; movieResult.Revenue = (decimal)movie.Revenue; movieResult.Budget = (decimal)movie.Budget; movieResult.PosterUrl = movie.PosterUrl; movieResult.Title = movie.Title; movieResult.Overview = movie.Overview; int count = 0; decimal total = 0; foreach (var review in movie.Review) { total += review.Rating; count++; } decimal avgRating = total / count; movieResult.Rating = avgRating; return(movieResult); }
public async Task <MovieDetailsResponseModel> GetMovieById(int id) { var movie = await _movieRepository.GetByIdAsync(id); // map movie entity to MovieDetailsResponseModel var movieDetails = new MovieDetailsResponseModel { Id = movie.Id, Title = movie.Title, Overview = movie.Overview, Tagline = movie.Tagline, Budget = movie.Budget, Revenue = movie.Revenue, ImdbUrl = movie.ImdbUrl, TmdbUrl = movie.TmdbUrl, PosterUrl = movie.PosterUrl, BackdropUrl = movie.BackdropUrl, OriginalLanguage = movie.OriginalLanguage, ReleaseDate = movie.ReleaseDate, RunTime = movie.RunTime, Price = movie.Price, }; // map list of GenreModel List <GenreResponseModel> genreResponseModels = new List <GenreResponseModel>(); foreach (var genre in movie.Genres) { var curGenreResponseModel = new GenreResponseModel { Id = genre.Id, Name = genre.Name }; genreResponseModels.Add(curGenreResponseModel); } // map list of CastResponseModel List <CastResponseModel> castResponseModels = new List <CastResponseModel>(); foreach (var moviecast in movie.MovieCasts) { var cast = moviecast.Cast; var curCastResponseModel = new CastResponseModel { Id = cast.Id, Name = cast.Name, Gender = cast.Gender, TmdbUrl = cast.TmdbUrl, ProfilePath = cast.ProfilePath, Character = moviecast.Character }; castResponseModels.Add(curCastResponseModel); } movieDetails.Genres = genreResponseModels; movieDetails.Casts = castResponseModels; return(movieDetails); }
public async Task <MovieDetailsResponseModel> GetMovieAsync(int id) { var movie = await _movieRepository.GetByIdAsync(id); var castList = new List <MovieDetailsResponseModel.CastResponseModel>(); foreach (var cast in movie.MovieCasts) { castList.Add(new MovieDetailsResponseModel.CastResponseModel { Id = cast.CastId, Gender = cast.Cast.Gender, Name = cast.Cast.Name, ProfilePath = cast.Cast.ProfilePath, TmdbUrl = cast.Cast.TmdbUrl, Character = cast.Character }); } var genreList = new List <GenreModel>(); foreach (var genre in movie.Genres) { genreList.Add(new GenreModel { Id = genre.Id, Name = genre.Name }); } var response = new MovieDetailsResponseModel(); response.Id = movie.Id; response.Title = movie.Title; response.PosterUrl = movie.PosterUrl; response.BackdropUrl = movie.BackdropUrl; response.Rating = movie.Rating; response.Overview = movie.Overview; response.Tagline = movie.Tagline; response.Budget = movie.Budget; response.Revenue = movie.Revenue; response.ImdbUrl = movie.ImdbUrl; response.TmdbUrl = movie.TmdbUrl; response.ReleaseDate = movie.ReleaseDate; response.RunTime = movie.RunTime; response.Price = movie.Price; response.Casts = castList; response.Genres = genreList; return(response); }
public async Task <MovieDetailsResponseModel> GetMovieDetailsById(int id) { var movie = await _movieRepository.GetById(id); if (movie == null) { throw new NotFoundException("Movie", id); } List <GenreResponseModel> genres = new List <GenreResponseModel>(); foreach (var g in movie.Genres) { genres.Add(new GenreResponseModel { Id = g.Id, Name = g.Name, }); } List <CastResponseModel> casts = new List <CastResponseModel>(); foreach (var mc in movie.MovieCasts) { casts.Add(new CastResponseModel { Id = mc.Cast.Id, Name = mc.Cast.Name, Gender = mc.Cast.Gender, TmdbUrl = mc.Cast.TmdbUrl, ProfilePath = mc.Cast.ProfilePath, Character = mc.Character, }); } var response = 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, RunTime = movie.RunTime, Price = movie.Price, ReleaseDate = movie.ReleaseDate, Genres = genres, Casts = casts, }; return(response); }
public async Task <MovieDetailsResponseModel> GetMovieAsync(int id) { // get movie by id var movie = await _movieRepository.GetByIdAsync(id); if (movie == null) { throw new NotFoundException("Movie", id); } var genres = new List <GenreModel>(); var casts = new List <MovieDetailsResponseModel.CastResponseModel>(); // for every genre in the movie foreach (var genre in movie.Genres) { genres.Add(new GenreModel { Id = genre.Id, Name = genre.Name }); } // for every cast in the movie foreach (var thing in movie.MovieCasts) { casts.Add(new MovieDetailsResponseModel.CastResponseModel { Id = thing.CastId, Character = thing.Character, Gender = thing.Cast.Gender, Name = thing.Cast.Name, ProfilePath = thing.Cast.ProfilePath, TmdbUrl = thing.Cast.TmdbUrl }); } var response = 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, Casts = casts, Genres = genres }; return(response); }
public async Task <MovieDetailsResponseModel> UpdateMovie(MovieCreateRequest movieCreateRequest) { var movie = new Movie { Id = movieCreateRequest.Id, Title = movieCreateRequest.Title, Overview = movieCreateRequest.Overview, BackdropUrl = movieCreateRequest.BackdropUrl, Budget = movieCreateRequest.Budget, Revenue = movieCreateRequest.Revenue, Tagline = movieCreateRequest.Tagline, PosterUrl = movieCreateRequest.PosterUrl, TmdbUrl = movieCreateRequest.TmdbUrl, ImdbUrl = movieCreateRequest.ImdbUrl, ReleaseDate = movieCreateRequest.ReleaseDate, OriginalLanguage = movieCreateRequest.OriginalLanguage, RunTime = movieCreateRequest.RunTime, Price = movieCreateRequest.Price, }; var updateMovie = await _movieRepository.UpdateAsync(movie); if (movieCreateRequest.Genres != null) { foreach (var genre in movieCreateRequest.Genres) { var movieGenre = new MovieGenre { MovieId = updateMovie.Id, GenreId = genre.Id }; await _genresRepository.UpdateAsync(movieGenre); } } var response = new MovieDetailsResponseModel { Id = updateMovie.Id, Title = updateMovie.Title, Overview = updateMovie.Overview, Tagline = updateMovie.Tagline, ImdbUrl = updateMovie.ImdbUrl, TmdbUrl = updateMovie.TmdbUrl, BackdropUrl = updateMovie.BackdropUrl, PosterUrl = updateMovie.PosterUrl, Budget = updateMovie.Budget, RunTime = updateMovie.RunTime, ReleaseDate = updateMovie.ReleaseDate, Revenue = updateMovie.Revenue, Price = updateMovie.Price, OriginalLanguage = updateMovie.OriginalLanguage }; return(response); }
public async Task <MovieDetailsResponseModel> CreateMovie(MovieCreateRequest movieCreateRequest) { var roles = _currentUserService.Roles; List <string> rolesList = new List <string>(); foreach (var role in roles) { rolesList.Add(role); } string admin = "Admin"; if (!rolesList.Exists(e => e == admin)) { throw new Exception("Not Authorized"); } var movie = new Movie { Title = movieCreateRequest.Title, Overview = movieCreateRequest.Overview, BackdropUrl = movieCreateRequest.BackdropUrl, Budget = movieCreateRequest.Budget, CreatedDate = movieCreateRequest.CreatedDate, ImdbUrl = movieCreateRequest.ImdbUrl, OriginalLanguage = movieCreateRequest.OriginalLanguage, PosterUrl = movieCreateRequest.PosterUrl, Price = movieCreateRequest.Price, ReleaseDate = movieCreateRequest.ReleaseDate, RunTime = movieCreateRequest.RunTime, Tagline = movieCreateRequest.TagLine, TmdbUrl = movieCreateRequest.TmdbUrl }; var createdMovie = await _movieRepository.AddAsync(movie); var response = new MovieDetailsResponseModel() { Id = createdMovie.Id, Title = createdMovie.Title, Overview = createdMovie.Overview, BackdropUrl = createdMovie.BackdropUrl, Budget = createdMovie.Budget, CreatedDate = createdMovie.CreatedDate, ImdbUrl = createdMovie.ImdbUrl, OriginalLanguage = createdMovie.OriginalLanguage, PosterUrl = createdMovie.PosterUrl, Price = createdMovie.Price, ReleaseDate = createdMovie.ReleaseDate, RunTime = createdMovie.RunTime, Tagline = createdMovie.Tagline, TmdbUrl = createdMovie.TmdbUrl }; return(response); }
public async Task <MovieDetailsResponseModel> UpdateMovie(MovieCreateRequestModel model) { var movie = new Movie { Title = model.Title, Overview = model.Overview, Tagline = model.Tagline, Revenue = model.Revenue, Budget = model.Budget, ImdbUrl = model.ImdbUrl, TmdbUrl = model.TmdbUrl, PosterUrl = model.PosterUrl, BackdropUrl = model.BackdropUrl, OriginalLanguage = model.OriginalLanguage, ReleaseDate = model.ReleaseDate, RunTime = model.RunTime, Price = model.Price, }; var movieGenres = new List <Genre>(); foreach (var genre in model.Genres) { movieGenres.Add(new Genre { Id = genre.Id, Name = genre.Name, }); } movie.Genres = movieGenres; var updatedMovie = await _movieRepository.Update(movie); var response = new MovieDetailsResponseModel { Id = updatedMovie.Id, Title = updatedMovie.Title, Overview = updatedMovie.Overview, Tagline = updatedMovie.Tagline, Revenue = updatedMovie.Revenue, Budget = updatedMovie.Budget, ImdbUrl = updatedMovie.ImdbUrl, TmdbUrl = updatedMovie.TmdbUrl, PosterUrl = updatedMovie.PosterUrl, BackdropUrl = updatedMovie.BackdropUrl, ReleaseDate = updatedMovie.ReleaseDate, RunTime = updatedMovie.RunTime, Price = updatedMovie.Price, //Genres = updatedMovie.Genres, }; return(response); }
public async Task <MovieDetailsResponseModel> UpdateMovie(MovieCreateRequestModel movieCreateRequestModel) { var movie = new Movie() { Id = movieCreateRequestModel.Id, Title = movieCreateRequestModel.Title, Overview = movieCreateRequestModel.Overview, Tagline = movieCreateRequestModel.Tagline, Revenue = movieCreateRequestModel.Revenue, Budget = movieCreateRequestModel.Budget, ImdbUrl = movieCreateRequestModel.ImdbUrl, TmdbUrl = movieCreateRequestModel.TmdbUrl, PosterUrl = movieCreateRequestModel.PosterUrl, BackdropUrl = movieCreateRequestModel.BackdropUrl, OriginalLanguage = movieCreateRequestModel.OriginalLanguage, ReleaseDate = movieCreateRequestModel.ReleaseDate, RunTime = movieCreateRequestModel.RunTime, Price = movieCreateRequestModel.Price, Genres = new List <Genre>() }; foreach (var genre in movieCreateRequestModel.Genres) { movie.Genres.Add(new Genre() { Id = genre.Id, Name = genre.Name, }); } var newMovie = await _movieRepository.UpdateAsync(movie); var moiveResponse = new MovieDetailsResponseModel() { Id = newMovie.Id, Title = newMovie.Title, Budget = newMovie.Budget, PosterUrl = newMovie.PosterUrl, Rating = newMovie.Rating, ReleaseDate = newMovie.ReleaseDate, BackdropUrl = newMovie.BackdropUrl, ImdbUrl = newMovie.ImdbUrl, Tagline = newMovie.Tagline, Price = newMovie.Price, Revenue = newMovie.Revenue, RunTime = newMovie.RunTime, Overview = newMovie.Overview, TmdbUrl = newMovie.TmdbUrl, }; return(moiveResponse); }
public async Task <MovieDetailsResponseModel> GetMovieById(int id) { var movie = await _movieRepository.GetByIdAsync(id); List <CastResponseModel> casts = new List <CastResponseModel>(); foreach (var cast in movie.MovieCasts) { var castResonse = new CastResponseModel { Id = cast.Cast.Id, Name = cast.Cast.Name, Gender = cast.Cast.Gender, ProfilePath = cast.Cast.ProfilePath, TmdbUrl = cast.Cast.TmdbUrl, Character = cast.Character }; casts.Add(castResonse); } List <Genre> genres = new List <Genre>(); foreach (var genre in movie.MovieGenres) { var g = new Genre { Id = genre.Genre.Id, Name = genre.Genre.Name }; genres.Add(g); } var movieDetails = new MovieDetailsResponseModel { Id = movie.Id, Title = movie.Title, Overview = movie.Overview, Tagline = movie.Tagline, Budget = movie.Budget, Revenue = movie.Revenue, ImdbUrl = movie.ImdbUrl, TmdbUrl = movie.TmdbUrl, PosterUrl = movie.PosterUrl, BackdropUrl = movie.BackdropUrl, OriginalLanguage = movie.OriginalLanguage, ReleaseDate = movie.ReleaseDate, RunTime = movie.RunTime, Price = movie.Price, Casts = casts, Genres = genres }; return(movieDetails); }
public async Task <MovieDetailsResponseModel> GetMovieAsync(int id) { var movie = await _movieRepository.GetByIdAsync(id); var movieDetailsResponseModel = new MovieDetailsResponseModel { Id = movie.Id, Title = movie.Title, PosterUrl = movie.PosterUrl, BackdropUrl = movie.BackdropUrl, //missig rating, will talk later 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, //ignore favorite count for now Casts = new List <MovieDetailsResponseModel.CastResponseModel>() }; foreach (var cast in movie.MovieCasts) { movieDetailsResponseModel.Casts.Add(new MovieDetailsResponseModel.CastResponseModel { Id = cast.Cast.Id, Name = cast.Cast.Name, Gender = cast.Cast.Gender, TmdbUrl = cast.Cast.TmdbUrl, ProfilePath = cast.Cast.ProfilePath, Character = cast.Character }); } movieDetailsResponseModel.Genres = new List <Core.Entities.Genre>(); foreach (var genre in movie.MovieGenres) { movieDetailsResponseModel.Genres.Add(new Core.Entities.Genre { Id = genre.Genre.Id, Name = genre.Genre.Name }); } return(movieDetailsResponseModel); }
public async Task <MovieDetailsResponseModel> UpdateMovie(MovieCreateRequestModel movieCreateRequest) { //find the movie var movie = new Movie(); PropertyCopy.Copy(movie, movieCreateRequest); var updateResult = await _repo.UpdateAsync(movie); var movieResult = new MovieDetailsResponseModel(); PropertyCopy.Copy(movieResult, updateResult); return(movieResult); }
public async Task <MovieDetailsResponseModel> GetMovieAsync(int id) { var movie = await _movieRepository.GetByIdAsync(id); var casts = await _castRepository.GetCastByMovieId(id); var favoritecount = await _favoriteRepository.GetFavoriteCountAsync(id); var moviegenre = await _genreRepository.GetGenreByMovieId(id); var responseMovies = 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 = favoritecount, Casts = new List <CastResponseModel>(), Genres = moviegenre.ToList(), }; foreach (var cast in casts) { var moviecast = await _castRepository.GetMovieCastById(cast.Id, id); responseMovies.Casts.Add(new MovieDetailsResponseModel.CastResponseModel { Id = cast.Id, Name = cast.Name, Gender = cast.Gender, TmdbUrl = cast.TmdbUrl, ProfilePath = cast.ProfilePath, Character = moviecast.Character }); } return(responseMovies); }
public async Task <MovieDetailsResponseModel> CreateMovie(MovieCreateRequest movieCreateRequest) { var dbMovie = await _movieRepository.GetMovieByTitle(movieCreateRequest.Title); if (dbMovie != null && string.Equals(dbMovie.Title, movieCreateRequest.Title, StringComparison.CurrentCultureIgnoreCase)) { throw new Exception("Movie Already Exits"); } var movie = new Movie { Id = movieCreateRequest.Id, Title = movieCreateRequest.Title, PosterUrl = movieCreateRequest.PosterUrl, BackdropUrl = movieCreateRequest.BackdropUrl, //Rating = movie.Rating, Overview = movieCreateRequest.Overview, Tagline = movieCreateRequest.Tagline, Budget = movieCreateRequest.Budget, Revenue = movieCreateRequest.Revenue, ImdbUrl = movieCreateRequest.ImdbUrl, TmdbUrl = movieCreateRequest.TmdbUrl, ReleaseDate = movieCreateRequest.ReleaseDate, RunTime = movieCreateRequest.RunTime, Price = movieCreateRequest.Price }; var createMovie = await _movieRepository.AddAsync(movie); var response = new MovieDetailsResponseModel { Id = createMovie.Id, Title = createMovie.Title, PosterUrl = createMovie.PosterUrl, BackdropUrl = createMovie.BackdropUrl, //Rating = movie.Rating, Overview = createMovie.Overview, Tagline = createMovie.Tagline, Budget = createMovie.Budget, Revenue = createMovie.Revenue, ImdbUrl = createMovie.ImdbUrl, TmdbUrl = createMovie.TmdbUrl, ReleaseDate = createMovie.ReleaseDate, RunTime = createMovie.RunTime, Price = createMovie.Price }; return(response); }
private MovieDetailsResponseModel movieToDetialResponse(Movie movie) { var movieResponseModel = new MovieDetailsResponseModel { Id = movie.Id, PosterUrl = movie.PosterUrl, ReleaseDate = movie.ReleaseDate.Value, Title = movie.Title, Overview = movie.Overview, Budget = movie.Budget, Tagline = movie.Tagline, Revenue = movie.Revenue, }; return(movieResponseModel); }
public async Task <MovieDetailsResponseModel> GetMovieAsync(int id) { var movie = await _movieRepository.GetByIdAsync(id); var movieDetailsResponseModel = new MovieDetailsResponseModel { Id = movie.Id, Title = movie.Title, PosterUrl = movie.PosterUrl, BackdropUrl = movie.BackdropUrl, // Movie - not have rating now 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, Casts = new List <CastResponseModel>(), Genres = new List <Genre>() // FavoritesCount = movie.FavoritesCount; }; foreach (var movieCast in movie.MovieCasts) { movieDetailsResponseModel.Casts.Add(new CastResponseModel { Id = movieCast.Cast.Id, Name = movieCast.Cast.Name, Gender = movieCast.Cast.Gender, Character = movieCast.Character, ProfilePath = movieCast.Cast.ProfilePath, TmdbUrl = movieCast.Cast.TmdbUrl }); } foreach (var genre in movie.MovieGenres) { movieDetailsResponseModel.Genres.Add(genre.Genre); } return(movieDetailsResponseModel); }
public async Task <MovieDetailsResponseModel> GetMovieByIdAsync(int id) { var movie = await _movieRepository.GetByIdAsync(id); var casts = new List <CastResponseModel>(); foreach (MovieCast ca in movie.MovieCasts) { casts.Add(new CastResponseModel { Id = ca.CastId, Name = ca.Cast.Name, Gender = ca.Cast.Gender, TmdbUrl = ca.Cast.TmdbUrl, ProfilePath = ca.Cast.ProfilePath, Character = ca.Character }); } var movieDetails = new MovieDetailsResponseModel { Id = movie.Id, Title = movie.Title, Budget = movie.Budget, Overview = movie.Overview, Tagline = movie.Tagline, ImdbUrl = movie.ImdbUrl, Revenue = movie.Revenue, TmdbUrl = movie.TmdbUrl, PosterUrl = movie.PosterUrl, BackdropUrl = movie.BackdropUrl, OriginalLanguage = movie.OriginalLanguage, ReleaseDate = movie.ReleaseDate, RunTime = movie.RunTime, Price = movie.Price, Casts = casts, }; // // loop thru this object and add this movie.MovieCasts info to movieDetails.Casts //if (movie == null) throw new NotFoundException("Movie", id); //var favoritesCount = await _favoriteRepository.GetCountAsync(f => f.MovieId == id); //var response = _mapper.Map<MovieDetailsResponseModel>(movie); //response.FavoritesCount = favoritesCount; return(movieDetails); }
public async Task <MovieDetailsResponseModel> GetMovieAsync(int id) { var movie = await _movieRepository.GetByIdAsync(id); var favoriteCount = await _favoriteRepository.GetCountAsync(f => f.Id == id); MovieDetailsResponseModel movieDetailsResponseModel = new MovieDetailsResponseModel() { Id = movie.Id, Title = movie.Title, PosterUrl = movie.PosterUrl, BackdropUrl = movie.BackdropUrl, 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 = favoriteCount, Rating = movie.Rating, Casts = new List <MovieDetailsResponseModel.CastResponseModel>(), Genres = new List <Genre>() }; foreach (var cast in movie.MovieCasts) { movieDetailsResponseModel.Casts.Add(new MovieDetailsResponseModel.CastResponseModel { Id = cast.Cast.Id, Character = cast.Character, Gender = cast.Cast.Gender, Name = cast.Cast.Name, TmdbUrl = cast.Cast.TmdbUrl, ProfilePath = cast.Cast.ProfilePath }); } foreach (var genre in movie.MovieGenres) { movieDetailsResponseModel.Genres.Add(genre.Genre); } return(movieDetailsResponseModel); }
public async Task <List <MovieDetailsResponseModel> > GetAllMovies(MovieParameters movieParameters) { var movieDetailsResponse = new List <MovieDetailsResponseModel>(); var movies = await _movieRepository.GetMovies(movieParameters); foreach (var movie in movies) { var movieDetails = new MovieDetailsResponseModel { Id = movie.Id, Title = movie.Title, Overview = movie.Overview, Tagline = movie.Tagline, Budget = movie.Budget, Revenue = movie.Revenue, ImdbUrl = movie.ImdbUrl, TmdbUrl = movie.TmdbUrl, PosterUrl = movie.PosterUrl, BackdropUrl = movie.BackdropUrl, OriginalLanguage = movie.OriginalLanguage, ReleaseDate = movie.ReleaseDate, RunTime = movie.RunTime, Price = movie.Price, Genres = new List <GenreModel>(), Casts = new List <CastResponseModel>() }; foreach (var genre in movie.Genres) { movieDetails.Genres.Add(new GenreModel { Id = genre.Id, Name = genre.Name }); } foreach (var cast in movie.MovieCasts) { movieDetails.Casts.Add(new CastResponseModel { Id = cast.CastId, Character = cast.Character, Name = cast.Cast.Name, ProfilePath = cast.Cast.ProfilePath }); } movieDetailsResponse.Add(movieDetails); } return(movieDetailsResponse); }
public async Task <MovieDetailsResponseModel> CreateMovie(MovieCreateRequest movieCreateRequest) { var movie = new Movie { Id = movieCreateRequest.Id, Title = movieCreateRequest.Title, Overview = movieCreateRequest.Overview, Tagline = movieCreateRequest.Tagline, Revenue = movieCreateRequest.Revenue, Budget = movieCreateRequest.Budget, ImdbUrl = movieCreateRequest.ImdbUrl, TmdbUrl = movieCreateRequest.TmdbUrl, PosterUrl = movieCreateRequest.PosterUrl, BackdropUrl = movieCreateRequest.BackdropUrl, OriginalLanguage = movieCreateRequest.OriginalLanguage, ReleaseDate = movieCreateRequest.ReleaseDate, RunTime = movieCreateRequest.RunTime, Price = movieCreateRequest.Price, }; var CreatedMovie = await _movieRepository.AddAsync(movie); foreach (var genre in movieCreateRequest.Genres) { var MovieGenre = new MovieGenre { MovieId = CreatedMovie.Id, GenreId = genre.Id }; await _movieGenresRepository.AddAsync(MovieGenre); } var ReturnedModel = new MovieDetailsResponseModel { Id = movie.Id, Title = movie.Title, Overview = movie.Overview, Tagline = movie.Tagline, Revenue = movie.Revenue, Budget = movie.Budget, ImdbUrl = movie.ImdbUrl, TmdbUrl = movie.TmdbUrl, PosterUrl = movie.PosterUrl, BackdropUrl = movie.BackdropUrl, ReleaseDate = movie.ReleaseDate, RunTime = movie.RunTime, Price = movie.Price, }; return(ReturnedModel); }
public async Task <MovieDetailsResponseModel> GetMovieById(int id) { var movieDetails = new MovieDetailsResponseModel(); var movie = await _movieRepository.GetByIdAsync(id); // _dbContext.Movies.Include(m => m.MovieCasts).ThenInclude(m => m.Cast).Include(m => m.Genres).FirstOrDefault(m => m.Id == id); movieDetails.Id = movie.Id; movieDetails.PosterUrl = movie.PosterUrl; movieDetails.Title = movie.Title; movieDetails.Overview = movie.Overview; movieDetails.Tagline = movie.Tagline; movieDetails.Budget = movie.Budget; movieDetails.Revenue = movie.Revenue; movieDetails.ImdbUrl = movie.ImdbUrl; movieDetails.TmdbUrl = movie.TmdbUrl; movieDetails.BackdropUrl = movie.BackdropUrl; movieDetails.OriginalLanguage = movie.OriginalLanguage; movieDetails.ReleaseDate = movie.ReleaseDate; movieDetails.RunTime = movie.RunTime; movieDetails.Price = movie.Price; //movieDetails.Genres and movie.Genres are different type, so I think we cannot simply use = movieDetails.Genres = new List <GenreModel>(); foreach (var genre in movie.Genres) { movieDetails.Genres.Add(new GenreModel { Id = genre.Id, Name = genre.Name }); } //movieDetails.Casts and movie.MovieCasts are different type, so I think we cannot simply use = movieDetails.Casts = new List <CastReponseModel>(); foreach (var cast in movie.MovieCasts) { movieDetails.Casts.Add(new CastReponseModel { Id = cast.CastId, Character = cast.Character, Name = cast.Cast.Name, ProfilePath = cast.Cast.ProfilePath }); } return(movieDetails); }
public async Task <MovieDetailsResponseModel> GetMovieById(int id) { var movieDetails = new MovieDetailsResponseModel(); var movie = await _movieRepository.GetByIdAsync(id); // map movie entity to MovieDetailsResponseModel movieDetails.Id = movie.Id; movieDetails.PosterUrl = movie.PosterUrl; movieDetails.Title = movie.Title; movieDetails.Overview = movie.Overview; movieDetails.Tagline = movie.Tagline; movieDetails.Budget = movie.Budget; movieDetails.Revenue = movie.Revenue; movieDetails.ImdbUrl = movie.ImdbUrl; movieDetails.TmdbUrl = movie.TmdbUrl; movieDetails.BackdropUrl = movie.BackdropUrl; movieDetails.OriginalLanguage = movie.OriginalLanguage; movieDetails.ReleaseDate = movie.ReleaseDate; movieDetails.RunTime = movie.RunTime; movieDetails.Price = movie.Price; movieDetails.Genres = new List <GenreModel>(); movieDetails.Casts = new List <CastResponseModel>(); foreach (var genre in movie.Genres) { movieDetails.Genres.Add(new GenreModel { Id = genre.Id, Name = genre.Name }); } foreach (var cast in movie.MovieCasts) { movieDetails.Casts.Add(new CastResponseModel { Id = cast.CastId, Character = cast.Character, Name = cast.Cast.Name, ProfilePath = cast.Cast.ProfilePath }); } return(movieDetails); }
public async Task <MovieDetailsResponseModel> GetMovieDetailsById(int id) { var movie = await _movieRepository.GetById(id); var MovieDetails = new MovieDetailsResponseModel { Id = movie.Id, Title = movie.Title, BackdropUrl = movie.BackdropUrl, PosterUrl = movie.PosterUrl, Tagline = movie.Tagline, Overview = movie.Overview, ImdbUrl = movie.ImdbUrl, TmdbUrl = movie.TmdbUrl, ReleaseDate = movie.ReleaseDate, RunTime = movie.RunTime, Budget = movie.Budget, Price = movie.Price, Revenue = movie.Revenue, Rating = movie.Rating }; MovieDetails.Genres = new List <GenreResponseModel>(); MovieDetails.Casts = new List <CastResponseModel>(); foreach (var cast in movie.MovieCasts) { MovieDetails.Casts.Add(new CastResponseModel { Id = cast.CastId, Name = cast.Cast.Name, ProfilePath = cast.Cast.ProfilePath, Character = cast.Character }); } foreach (var genre in movie.MovieGenres) { MovieDetails.Genres.Add(new GenreResponseModel { Id = genre.Genre.Id, Name = genre.Genre.Name }); } return(MovieDetails); }
public async Task <MovieDetailsResponseModel> GetMovieAsync(int id) { var movie = await _movieRepository.GetByIdAsync(id); if (movie == null) { throw new Exception("Movie not found"); } var movieResponseModel = new MovieDetailsResponseModel { Id = movie.Id, PosterUrl = movie.PosterUrl, ReleaseDate = movie.ReleaseDate.Value, Title = movie.Title, Overview = movie.Overview, Price = movie.Price, }; return(movieResponseModel); }
public async Task <MovieDetailsResponseModel> CreateMovie(MovieCreateRequest movieCreateRequest) { var movie = new Movie { Id = movieCreateRequest.Id, Title = movieCreateRequest.Title, Overview = movieCreateRequest.Overview, Tagline = movieCreateRequest.Tagline, Revenue = movieCreateRequest.Revenue, Budget = movieCreateRequest.Budget, ImdbUrl = movieCreateRequest.ImdbUrl, TmdbUrl = movieCreateRequest.TmdbUrl, PosterUrl = movieCreateRequest.PosterUrl, BackdropUrl = movieCreateRequest.BackdropUrl, OriginalLanguage = movieCreateRequest.OriginalLanguage, ReleaseDate = movieCreateRequest.ReleaseDate, RunTime = movieCreateRequest.RunTime, Price = movieCreateRequest.Price, }; await _movieRepository.AddAsync(movie); var response = new MovieDetailsResponseModel { Id = movieCreateRequest.Id, Title = movieCreateRequest.Title, Overview = movieCreateRequest.Overview, Tagline = movieCreateRequest.Tagline, Revenue = movieCreateRequest.Revenue, Budget = movieCreateRequest.Budget, ImdbUrl = movieCreateRequest.ImdbUrl, TmdbUrl = movieCreateRequest.TmdbUrl, PosterUrl = movieCreateRequest.PosterUrl, BackdropUrl = movieCreateRequest.BackdropUrl, ReleaseDate = movieCreateRequest.ReleaseDate, RunTime = movieCreateRequest.RunTime, Price = movieCreateRequest.Price, Genres = movieCreateRequest.Genres }; return(response); }
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); }