public async Task <IActionResult> Detail(int Id) { //var email = User.Identity.Name; //var currentUser = await _userService.GetUserByEmail(email); //var currentId = currentUser.Id; var movie = await _movieService.GetMovieById(Id); var cast = await _castService.GetAllCastsByMovieId(Id); var rat = await _movieService.GetMoviesAverageRating(Id); var genre = await _genreService.GetGenresByMovieId(Id); var currentIdstr = HttpContext.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier); var purchaseOrNot = false; var favOrNot = false; var reviewed = false; var currentId = 0; if (currentIdstr != null && !string.IsNullOrWhiteSpace(currentIdstr.Value)) { currentId = Int32.Parse(currentIdstr.Value); favOrNot = await _userService.IsMovieFavorited(currentId, Id); reviewed = await _userService.IsMovieReviewed(currentId, Id); } Detail detail = new Detail() { DetailMovie = movie, DetailCast = cast, DetailRating = rat, DetailGenre = genre, //DetailCharacters = chars, DetailCurrentUserId = currentId, isPurchased = purchaseOrNot, IsFavorited = favOrNot, IsReviewed = reviewed }; return(View(detail)); }