public async Task <ActionResult <DetailsMovieDTO> > Get(int id) { var movie = await context.Movies.Where(x => x.Id == id) .Include(movie => movie.MoviesGenres).ThenInclude(MG => MG.Genre) .Include(movie => movie.MoviesActors).ThenInclude(movieActor => movieActor.Person) .FirstOrDefaultAsync(); if (movie == null) { return(NotFound()); } var voteAverage = 0.0; var uservote = 0; if (await context.MovieRatings.AnyAsync(x => x.MovieId == id)) { voteAverage = await context.MovieRatings .Where(x => x.MovieId == id) .AverageAsync(x => x.Rate); } if (HttpContext.User.Identity.IsAuthenticated) { var user = await userManager.FindByEmailAsync(HttpContext.User.Identity.Name); var userId = user.Id; Console.Write($"UserID: {userId}"); var uservoteDb = await context.MovieRatings .FirstOrDefaultAsync(x => x.MovieId == id && x.UserId == userId); Console.Write($"User Rating: {uservoteDb.Rate}"); if (uservoteDb != null) { uservote = uservoteDb.Rate; } } movie.MoviesActors = movie.MoviesActors.OrderBy(x => x.Order).ToList(); var model = new DetailsMovieDTO(); model.Movie = movie; model.Genres = movie.MoviesGenres.Select(x => x.Genre).ToList(); model.Actors = movie.MoviesActors.Select(x => new Person { Name = x.Person.Name, Picture = x.Person.Picture, Character = x.Character, Id = x.PersonId }).ToList(); model.UserVote = uservote; model.AverageVote = voteAverage; return(model); }
public async Task <ActionResult <DetailsMovieDTO> > Get(int id) { var movie = await context.Movies.Where(x => x.Id == id) .Include(x => x.MoviesGenres).ThenInclude(x => x.Genre) .Include(x => x.MoviesActors).ThenInclude(x => x.Person) .FirstOrDefaultAsync(); if (movie == null) { return(NotFound()); } movie.MoviesActors = movie.MoviesActors.OrderBy(x => x.Order).ToList(); var model = new DetailsMovieDTO(); model.Movie = movie; model.Genres = movie.MoviesGenres.Select(x => x.Genre).ToList(); model.Actors = movie.MoviesActors.Select(x => new Person { Name = x.Person.Name, Picture = x.Person.Picture, Character = x.Character, Id = x.PersonId }).ToList(); return(model); }
public async Task <ActionResult <DetailsMovieDTO> > GetMovieDetails(int id) { var movie = await _context.Movies.Where(x => x.Id == id) .Include(x => x.MoviesGenres).ThenInclude(x => x.Genre) .Include(x => x.MoviesActors).ThenInclude(x => x.Person) .FirstOrDefaultAsync(); if (movie == null) { return(NotFound()); } // Get the Average Rating of the current movie var averageVote = 0.0; var userVote = 0; if (await _context.MovieRatings.AnyAsync(x => x.MovieId == id)) { averageVote = await _context.MovieRatings.Where(x => x.MovieId == id) .AverageAsync(x => x.Rate); // Check if User is logged in if (HttpContext.User.Identity.IsAuthenticated) { var user = await _userManager.FindByNameAsync(HttpContext.User.Identity.Name); //var user = await _userManager.FindByEmailAsync(HttpContext.User.Identity.Name); var userId = user.Id; var userVoteDB = await _context.MovieRatings .FirstOrDefaultAsync(x => x.MovieId == id && x.UserId == userId); if (userVoteDB != null) { userVote = userVoteDB.Rate; } } } movie.MoviesActors = movie.MoviesActors.OrderBy(x => x.Order).ToList(); var model = new DetailsMovieDTO(); model.Movie = movie; model.Genres = movie.MoviesGenres.Select(x => x.Genre).ToList(); model.Actors = movie.MoviesActors.Select(x => new Person { Name = x.Person.Name, Picture = x.Person.Picture, Character = x.Character, Id = x.PersonId } ).ToList(); model.UserVote = userVote; model.AverageVote = averageVote; return(model); }
public async Task <DetailsMovieDTO> GetDetailsMovieDTO(int id) { var movie = await context.Movies.Where(x => x.Id == id) .Include(x => x.MoviesGenres).ThenInclude(x => x.Genre) .Include(x => x.MoviesActors).ThenInclude(x => x.Person) .AsNoTracking() .FirstOrDefaultAsync(); if (movie == null) { return(null); } var voteAverage = 0.0; var uservote = 0; if (await context.MovieRatings.AnyAsync(x => x.MovieId == id)) { voteAverage = await context.MovieRatings.Where(x => x.MovieId == id) .AverageAsync(x => x.Rate); var userId = await authenticationStateService.GetCurrentUserId(); if (userId != null) { var userVoteDB = await context.MovieRatings .FirstOrDefaultAsync(x => x.MovieId == id && x.UserId == userId); if (userVoteDB != null) { uservote = userVoteDB.Rate; } } } movie.MoviesActors = movie.MoviesActors.OrderBy(x => x.Order).ToList(); var model = new DetailsMovieDTO(); model.Movie = movie; model.Genres = movie.MoviesGenres.Select(x => x.Genre).ToList(); model.Actors = movie.MoviesActors.Select(x => new Person { Name = x.Person.Name, Picture = x.Person.Picture, Character = x.Character, Id = x.PersonId }).ToList(); model.UserVote = uservote; model.AverageVote = voteAverage; return(model); }
public async Task <ActionResult <DetailsMovieDTO> > Get(int id) { var movie = await dbcontext.MoviesRecords.Where(x => x.Id == id) .Include(x => x.GenresList).ThenInclude(x => x.Genre) .Include(x => x.ActorList).ThenInclude(x => x.Person) .FirstOrDefaultAsync(); if (movie == null) { return(NotFound()); } var voteAverage = 0.0; var userRating = 0; if (await dbcontext.MovieRatings.AnyAsync(x => x.MovieId == id)) { voteAverage = await dbcontext.MovieRatings.Where(x => x.MovieId == id).AverageAsync(x => x.Rate); if (HttpContext.User.Identity.IsAuthenticated) { var user = await userManager.FindByEmailAsync(HttpContext.User.Identity.Name); var userId = user.Id; var userVoteFromDb = await dbcontext.MovieRatings.FirstOrDefaultAsync(x => x.MovieId == id && x.UserId == userId); if (userVoteFromDb != null) { userRating = userVoteFromDb.Rate; } } } movie.ActorList = movie.ActorList.OrderBy(x => x.Order).ToList(); var model = new DetailsMovieDTO { MovieItem = movie, Genres = movie.GenresList.Select(x => x.Genre).ToList(), Actors = movie.ActorList.Select(x => new Person { Name = x.Person.Name, Picture = x.Person.Picture, Character = x.CharacterName, Id = x.PersonId }).ToList(), UserVote = userRating, AverageVote = voteAverage }; return(model); }
public async Task <ActionResult <DetailsMovieDTO> > Get(int id) { var movie = await context.Movies.Where(e => e.Id == id) .Include(e => e.MoviesGenres).ThenInclude(e => e.Genre) .Include(e => e.MoviesActors).ThenInclude(e => e.Person) .FirstOrDefaultAsync(); if (movie == null) { return(NotFound()); } var voteAvarage = 0.0; var uservote = 0; if (await context.MovieRatings.AnyAsync(e => e.MovieId == id)) { voteAvarage = await context.MovieRatings.Where(e => e.MovieId == id) .AverageAsync(e => e.Rate); if (HttpContext.User.Identity.IsAuthenticated) { var user = await userManager.FindByEmailAsync(HttpContext.User.Identity.Name); var userId = user.Id; var userVoteDB = await context.MovieRatings .FirstOrDefaultAsync(e => e.MovieId == id && e.UserId == userId); if (userVoteDB != null) { uservote = userVoteDB.Rate; } } } movie.MoviesActors = movie.MoviesActors.OrderBy(e => e.Order).ToList(); var model = new DetailsMovieDTO(); model.Movie = movie; model.Genres = movie.MoviesGenres.Select(e => e.Genre).ToList(); model.Actors = movie.MoviesActors.Select(e => new Person { Name = e.Person.Name, Picture = e.Person.Picture, Character = e.Character, Id = e.PersonId }).ToList(); model.AverageVote = voteAvarage; model.UserVote = uservote; return(model); }
protected async override Task OnInitializedAsync() { model = await moviesRepository.GetDetailsMovieDTO(MovieId); }