示例#1
0
        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));
        }