public async Task <IActionResult> Details(int movieScheduleId)
        {
            var model = new MovieDetailsModel
            {
                Movie = _movieScheduleRepository.Find(movieScheduleId)
            };

            var imdbData = await _imdbService.GetMovie(model.Movie.Movie.ImdbId);

            if (!string.IsNullOrEmpty(imdbData.Error))
            {
                return(RedirectToAction("Error", "Public"));
            }

            model.Rate        = float.Parse(imdbData.ImdbRating);
            model.Categories  = imdbData.Genre.Split(',');
            model.Duration    = TimeSpan.FromMinutes(int.Parse(imdbData.RunTime.Replace("min", string.Empty).Trim()));
            model.ImageSource = imdbData.Poster;
            model.Reviews     = model.Movie.Movie.Reviews.OrderByDescending(mr => mr.CreatedAt).ToArray();

            var searcher = new VideoSearch();

            var video = searcher.SearchQuery(model.Movie.Movie.Name, 1).FirstOrDefault();

            if (video != null)
            {
                model.Trailer = TransformUrlToEmbed(video.Url);
            }

            return(View(model));
        }
Пример #2
0
        public MovieDetailsModel GetMovieDetails(int id)
        {
            //Include("TitleGenres").Include("Genres")
            var t = db.Titles.Include("Storylines").Include("TitleGenres.Genre").Include("TitleParticipants.Participant").Where(f => f.TitleId == id).FirstOrDefault();

            MovieDetailsModel m = new MovieDetailsModel();

            m.TitleId     = t.TitleId;
            m.TitleName   = t.TitleName;
            m.ReleaseYear = t.ReleaseYear;
            m.Storylines  = new List <StorylineModel>();
            t.StoryLines.ToList().ForEach(sl => m.Storylines.Add(new StorylineModel {
                slid = sl.Id, StoryType = sl.Type
            }));
            m.Genres = new List <MovieGenre>();
            t.TitleGenres.ToList().ForEach(tg => m.Genres.Add(new MovieGenre {
                id = tg.Genre.Id, Name = tg.Genre.Name
            }));
            m.Actors = new List <ActorModel>();
            t.TitleParticipants.Where(f => f.RoleType == "Actor").ToList().ForEach(tp => m.Actors.Add(new ActorModel {
                Name = tp.Participant.Name, RoleType = tp.RoleType
            }));
            m.Participants = new List <ParticipantModel>();
            t.TitleParticipants.Where(f => f.RoleType != "Actor").ToList().ForEach(tp => m.Participants.Add(new ParticipantModel {
                Name = tp.Participant.Name, RoleType = tp.RoleType
            }));

            m.Actors       = m.Actors.OrderBy(s => s.Name).ToList();
            m.Participants = m.Participants.OrderBy(s => s.Name).ToList();

            return(m);
        }
Пример #3
0
        public async Task <IActionResult> Details(string imdbId)
        {
            if (imdbId == null)
            {
                return(RedirectToAction("Search", "Movie"));
            }

            MovieDetailsModel movie = _context
                                      .MovieDetailsModels
                                      .Where(movie => movie.imdbID == imdbId)
                                      .Include(movie => movie.Ratings)
                                      .FirstOrDefault();

            if (movie == null)
            {
                string response = await _client.QueryByImdbIdAsync(imdbId);

                movie = JsonSerializer.Deserialize <MovieDetailsModel>(response);

                if (movie.Response == "False")
                {
                    return(RedirectToAction("MovieNotFound", "Movie"));
                }

                await _context.AddAsync(movie);

                await _context.SaveChangesAsync();
            }

            return(View(movie));
        }
Пример #4
0
        /// <summary>
        /// Writes a Json file to the local storage.
        /// </summary>
        /// <param name="movieDetails"></param>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public async Task SaveFavoritesFile(MovieDetailsModel movieDetails, string fileName)
        {
            IFile file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);

            var fileString = JsonConvert.SerializeObject(movieDetails);
            await file.WriteAllTextAsync(fileString);
        }
Пример #5
0
        public IActionResult Details(int id)
        {
            Movie movie = MovieService.GetMovieDetails(id);

            MovieDetailsModel model = ModelConverter.DetailsModelConvert(movie);

            model.SideBarData = MovieService.GetSideBarData();

            if (User.Identity.IsAuthenticated)
            {
                MovieLikeModel movieLike = model.MovieLikes.FirstOrDefault(x => x.UserId == Convert.ToInt32(User.FindFirst("Id").Value));
                if (movieLike != null)
                {
                    if (movieLike.Status)
                    {
                        model.MovieStatus = MovieLikeStatus.Liked;
                    }
                    else
                    {
                        model.MovieStatus = MovieLikeStatus.Disliked;
                    }
                }
            }
            return(View(model));
        }
Пример #6
0
        public async Task <IActionResult> Details(int id)
        {
            var movie = await _movieService.GetMovieById(id);

            var userClaim = HttpContext.User.Claims.
                            FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier);

            bool purchased = false;
            bool favorited = false;

            if (userClaim != null && !string.IsNullOrWhiteSpace(userClaim.Value))
            {
                purchased = await _userService.CheckPurchase(Int32.Parse(userClaim.Value), id);

                favorited = await _userService.CheckFavorite(Int32.Parse(userClaim.Value), id);
            }

            var checkedMovie = new MovieDetailsModel
            {
                Movie        = movie,
                PurchaseFlag = purchased,
                FavoriteFlag = favorited
            };

            return(View(checkedMovie));
        }
Пример #7
0
        public IActionResult Details(int id)
        {
            using (this.db)
            {
                var movie = db.Movies.Include(m => m.Director).FirstOrDefault(m => m.Id == id);

                if (movie == null)
                {
                    return(this.RedirectToPage("Message", new { msgId = 3 }));
                }

                string status = db.Statuses.Find(movie.StatusId).Name;

                var movieDetails = new MovieDetailsModel()
                {
                    Id            = movie.Id,
                    Title         = movie.Title,
                    DirectorName  = movie.Director.Name,
                    Description   = movie.Description,
                    CoverImageUrl = movie.CoverImageUrl,
                    Status        = status
                };

                return(this.View(movieDetails));
            }
        }
Пример #8
0
        public ActionResult MovieDetails(int id)
        {
            var movieInDb = this.db.Movies.Find(id);
            MovieDetailsModel movieModel = new MovieDetailsModel(movieInDb);

            return(View(movieModel));
        }
Пример #9
0
        public async Task <IActionResult> Favorite(FavoriteRequestModel favoriteRequestModel)
        {
            var movie = await _movieService.GetMovieById(favoriteRequestModel.MovieId);

            favoriteRequestModel.UserId = Convert.ToInt32(HttpContext.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value);
            //var checkfavorited = await _userService.CheckFavorited(favoriteRequestModel);
            var movieDetails = new MovieDetailsModel();

            movieDetails.Movie  = movie;
            movieDetails.UserId = favoriteRequestModel.UserId;
            //if hasn't purchased
            //if (checkfavorited == false)
            //{
            await _userService.LikeMovie(favoriteRequestModel.UserId, favoriteRequestModel.MovieId);

            //    movieDetails.CheckFavorited = !checkfavorited;
            //    return View("Views/Movies/Details.cshtml", movieDetails);
            //}//if has purchased
            //else
            //{
            //    movieDetails.CheckFavorited = !checkfavorited;
            //    //之后改!!!!!!!!!!!!!!!!!
            //return LocalRedirect($"/Movies/Details/{movie.Id}");

            //return View("Views/Movies/Details.cshtml", movieDetails);
            return(RedirectToAction("Details", "Movies", new { movieid = movieDetails.Movie.Id }));
            //}
        }
Пример #10
0
 public static Movie ToModel(this MovieDetailsModel movie)
 {
     return(new Movie()
     {
         Title = movie.Title,
         Description = movie.Description,
         ImageURL = movie.ImageURL,
         Duration = movie.Duration,
         Views = movie.Views
     });
 }
        /// <summary>
        /// Check to see if there is a favorited movie saved.
        /// </summary>
        /// <returns></returns>
        private async Task CheckIfMovieIsFavorite()
        {
            var fileName = movieId.ToString();
            MovieDetailsModel returedFile = await _iDataManager.OpenFavoritesFile(fileName);

            if (returedFile != null)
            {
                Movie = returedFile;
                await UpdateFavoriteButton();
            }
        }
        /// <summary>
        /// Search for favorited movies and gets movie details.
        /// </summary>
        /// <returns></returns>
        private async Task GetFavoritedMovieListAsync()
        {
            IList <IFile> listOfFileNames = await _iDataManager.GetListOfFiles();

            foreach (var item in listOfFileNames)
            {
                var fileName = item.Name;
                MovieDetailsModel movieDetail = await _iDataManager.OpenFavoritesFile(fileName);

                var favoriteMovie = await _iMovieExplorerAPIService.GetMovieByIdAsync(movieDetail.id);

                FavoriteList.Add(favoriteMovie);
            }
        }
        // GET: Movie/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index", "Error"));
            }
            Movie movie = db.Movies.Find(id);

            if (movie == null)
            {
                return(RedirectToAction("Index", "Error", new { message = "Movie not found!" }));
            }

            MovieDetailsModel detailsModel = new MovieDetailsModel();

            detailsModel.movie        = movie;
            detailsModel.movieReviews = db.Ratings.Where(review => review.MovieID == movie.ID).ToList();

            return(View(detailsModel));
        }
Пример #14
0
        //[Route("Movies/Details/{movieId}")]
        public async Task <IActionResult> Details(int movieId)
        {
            //var purchaseRequestModel = new PurchaseRequestModel();
            //var favoriteRequestModel = new FavoriteRequestModel();
            var movieDetails = new MovieDetailsModel();

            if (User.Identity.IsAuthenticated)
            {
                var userId = Convert.ToInt32(HttpContext.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value);
                movieDetails.UserId         = userId;
                movieDetails.MovieId        = movieId;
                movieDetails.CheckPurchased = await _userService.CheckPurchased(userId, movieId);

                movieDetails.CheckFavorited = await _userService.CheckFavorited(userId, movieId);

                movieDetails.CheckReviewed = await _userService.CheckReviewed(userId, movieId);
            }
            var movie = await _movieService.GetMovieById(movieId);

            movieDetails.Movie = movie;
            return(View(movieDetails));
        }
Пример #15
0
        /// <summary>
        /// Reads a file from local storage.
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public async Task <MovieDetailsModel> OpenFavoritesFile(string fileName)
        {
            MovieDetailsModel movieDetails = new MovieDetailsModel();

            if ((await folder.CheckExistsAsync(fileName)) == ExistenceCheckResult.NotFound)
            {
                return(null);
            }
            else
            {
                IFile file = await folder.GetFileAsync(fileName);

                var jsonFile = await file.ReadAllTextAsync();

                if (!string.IsNullOrEmpty(jsonFile))
                {
                    movieDetails = JsonConvert.DeserializeObject <MovieDetailsModel>(jsonFile);
                    return(movieDetails);
                }
                return(null);
            }
        }
Пример #16
0
        // GET: Movies/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var review = from m in _context.Review
                         select m;

            review = review.Where(x => x.MovieID == id);

            var movie = await _context.Movie
                        .SingleOrDefaultAsync(m => m.ID == id);


            var movieDetails = new MovieDetailsModel();

            movieDetails.reviews = await review.ToListAsync();

            movieDetails.movie = movie;

            return(View(movieDetails));
        }
Пример #17
0
        public ActionResult ViewPartial(int id)
        {
            MovieDetailsModel m = th.GetMovieDetails(id);

            return(PartialView("_MovieDetailsPartial", m));
        }
Пример #18
0
        public ActionResult View(int id)
        {
            MovieDetailsModel m = th.GetMovieDetails(id);

            return(View(m));
        }