Example #1
0
        public MovieDetailsView()
        {
            InitializeComponent();

            _movieDetailsViewModel = new MovieDetailsViewModel();
            DataContext            = _movieDetailsViewModel;
        }
        public ViewResult Details(string Slug)
        {
            var movie = _context.Movies.Include(mg => mg.FilmItemGenres).ThenInclude(g => g.Genre)
                        .Include(mc => mc.FilmItemCredits).ThenInclude(p => p.Person)
                        .Include(v => v.Videos)
                        .Include(p => p.Photos)
                        .Include(t => t.Trivia)
                        .Include(m => m.Media)
                        .Include(mr => mr.UserRatings)
                        .Include(r => r.Reviews)
                        .Include(l => l.ListItems).ThenInclude(l => l.List)
                        .FirstOrDefault(m => m.Slug == Slug);

            MovieDetailsViewModel movieDetailsViewModel = new MovieDetailsViewModel
            {
                Movie        = movie,
                Genres       = movie.FilmItemGenres.Select(g => g.Genre.Name).OrderBy(g => g).ToArray(),
                ReleaseYear  = (movie.ReleaseDate.HasValue ? movie.ReleaseDate.Value.ToString("yyyy") : "Unknown"),
                ReleaseDate  = (movie.ReleaseDate.HasValue ? movie.ReleaseDate.Value.ToString("dd MMMM, yyyy") : "Unknown"),
                Directors    = movie.FilmItemCredits.Where(p => p.PartType == PartType.Director).OrderBy(x => x.Person.Surname).ToList(),
                Producers    = movie.FilmItemCredits.Where(p => p.PartType == PartType.Producer).ToList(),
                Writers      = movie.FilmItemCredits.Where(p => p.PartType == PartType.Writer).ToList(),
                CommentCount = movie.Reviews.Count,
                Lists        = _context.Lists.Where(l => l.ApplicationUserId == _userManager.GetUserId(User)).ToList(),
                ListCount    = movie.ListItems.Select(l => l.List).ToList().Count
            };

            if (movie == null)
            {
                return(View(nameof(Index)));
            }

            return(View(movieDetailsViewModel));
        }
        public MovieDetailsViewModel GetMovieById(int id)
        {
            var model = new MovieDetailsViewModel();

            var movieDb = DbContext.Movies
                          .Include(m => m.Genres).ThenInclude(mg => mg.Genre)
                          .Include(m => m.Actors).ThenInclude(ma => ma.Person)
                          .Include(m => m.Directors).ThenInclude(md => md.Person)
                          .Include(m => m.Producers).ThenInclude(mp => mp.Person)
                          .Include(m => m.ScriptWriters).ThenInclude(mw => mw.Person)
                          .Include(m => m.MovieVotes)
                          .FirstOrDefault(p => p.Id == id);

            if (movieDb == null)
            {
                model.SetError("No such movie in database");
                return(model);
            }

            model = Mapper.Map <MovieDetailsViewModel>(movieDb);
            if (model.VotesCount == default(int))
            {
                model.AverageRating = default(int);
            }
            return(model);
        }
        public async Task Movie_Is_Correct_When_Returned_From_Service()
        {
            //Arrange
            var mockMovie = new MovieDetails
            {
                BackdropPath = "testpath",
                Genres       = new string[] { "Action", "Adventure" },
                Overview     = "This is a test movie",
                PosterPath   = "testpath",
                ReleaseDate  = DateTime.Today,
                Title        = "Test Movie"
            };

            var navigationService   = new Mock <INavigationService>();
            var movieDetailsService = new Mock <IMovieDetailsService>();

            movieDetailsService.Setup
                (m => m.GetMovieDetails(It.IsAny <int>()))
            .Returns(Task.FromResult(mockMovie));

            var vm = new MovieDetailsViewModel(movieDetailsService.Object, navigationService.Object);

            //Act
            await vm.InitializeAsync(1);

            //Assert
            Assert.AreEqual(mockMovie.BackdropPath, vm.Movie.BackdropPath);
            Assert.AreEqual(mockMovie.Overview, vm.Movie.Overview);
            Assert.AreEqual(mockMovie.PosterPath, vm.Movie.PosterPath);
            Assert.AreEqual(mockMovie.ReleaseDate, vm.Movie.ReleaseDate);
            Assert.AreEqual(mockMovie.Title, vm.Movie.Title);
        }
        public IActionResult Details(int id)
        {
            var movie = movieRepository.GetMovieById(id);

            if (movie == null)
            {
                return(NotFound());
            }

            bool?liked = null;

            if (User.Identity.IsAuthenticated)
            {
                var userId = int.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier));
                liked = movieRepository.IsLiked(movie.MovieId, userId);
            }

            var addMovieViewModel = new MovieDetailsViewModel
            {
                MovieId     = movie.MovieId,
                Title       = movie.Title,
                Description = movie.Description,
                PosterPath  = movie.PosterPath,
                ReleaseDate = movie.ReleaseDate,
                Country     = movie.Country,
                Liked       = liked
            };

            return(View(addMovieViewModel));
        }
Example #6
0
        public IActionResult Details(int id)
        {
            Movie movie = this.Context
                          .Movies
                          .Include(x => x.Director)
                          .FirstOrDefault(x => x.Id == id);

            if (movie == default(Movie))
            {
                return(RedirectToPage(IndexPage));
            }

            MovieDetailsViewModel model = new MovieDetailsViewModel()
            {
                Title          = movie.Title,
                MovieId        = movie.Id,
                Description    = movie.Description,
                PosterImageURL = movie.PosterImage,
                DirectorId     = movie.DirectorId,
                Director       = movie.Director.Name,
                Status         = movie.Status,
                IsBorrowed     = movie.IsBorrowed
            };

            return(this.View(model));
        }
Example #7
0
        public async Task <MovieDetailsViewModel> GetMovieById(int id)
        {
            ApiQueryResponse <Movie> response = await _movieDbApi.FindByIdAsync(id);

            if (response.Item == null)
            {
                return(new MovieDetailsViewModel());
            }
            var movie = new MovieDetailsViewModel()
            {
                Id             = response.Item.Id,
                Title          = response.Item.Title,
                ReleaseDate    = response.Item.ReleaseDate,
                ReleaseYear    = response.Item.ReleaseDate.Year,
                RemoteImageUrl = response.Item.PosterPath,
                LocalImageUrl  = "",
                Genres         = new List <String>(),
                Description    = response.Item.Overview,
                Rating         = response.Item.VoteAverage,
                Runtime        = response.Item.Runtime,
                Caption        = response.Item.Tagline
            };

            movie.Actors = await GetCastByMovieId(movie.Id);

            foreach (Genre genre in response.Item.Genres)
            {
                movie.Genres.Add(genre.Name);
            }
            return(movie);
        }
Example #8
0
        // GET: Movies/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var movie = await _context.Movies
                        .FirstOrDefaultAsync(m => m.Id == id);

            if (movie == null)
            {
                return(NotFound());
            }

            var thisMovieShows = from m in _context.Shows orderby m.StartTime where m.Movie.Id == id && m.StartTime > DateTime.Now select m;
            var rooms          = from m in _context.Rooms select m;
            var movieDvm       = new MovieDetailsViewModel()
            {
                Film      = movie,
                ShowTimes = await thisMovieShows.ToListAsync(),
                Rooms     = await rooms.ToListAsync()
            };

            return(View(movieDvm));
        }
Example #9
0
        public async Task <MovieDetailsViewModel> FetchMovieDetails(int id)
        {
            using var context = _contextFactory.CreateDbContext();
            var movie = context.Movies.Include(p => p.Rates).FirstOrDefault(x => x.Id == id);
            var rate  = movie.Rates?.Select(x => x.Value).Average();

            var httpReponse = await _client.GetAsync(movie.Address);

            var content = await httpReponse.Content.ReadAsStringAsync();

            var movieDetails = JsonConvert.DeserializeObject <MovieSWAPI>(content);

            var details = new MovieDetailsViewModel
            {
                Id            = id,
                Created       = movieDetails.Created,
                Director      = movieDetails.Director,
                Edited        = movieDetails.Edited,
                Opening_crawl = movieDetails.Opening_crawl,
                Producer      = movieDetails.Producer,
                Release_date  = movieDetails.Release_date,
                Title         = movieDetails.Title,
                Rate          = rate ?? 0
            };

            return(details);
        }
Example #10
0
        public ActionResult Details(int?id)
        {
            if (!id.HasValue)
            {
                return(RedirectToAction("Index"));
            }



            if (id.Value == 1)
            {
                var movie = new MovieDetailsViewModel()
                {
                    Id = 1, Name = "Shrek"
                };

                return(View(movie));
            }

            if (id.Value == 2)
            {
                var movie = new MovieDetailsViewModel()
                {
                    Id = 2, Name = "Wall-e"
                };

                return(View(movie));
            }


            return(HttpNotFound());
        }
Example #11
0
        // GET: Movie/Details/5
        public ActionResult Details(int id)
        {
            var post     = ctx.Posts.Find(id);
            var movie    = ctx.Movies.Include(m => m.FilmCrewMembers).FirstOrDefault(m => m.Id == id);
            var filmCrew = movie.FilmCrewMembers;

            int?reviewId = null;
            var userId   = User.Identity.GetUserId();

            if (User.Identity.GetUserId() != null)
            {
                var review = ctx.Reviews.FirstOrDefault(r => r.AuthorId == userId && r.MovieId == movie.Id);
                if (review != null)
                {
                    reviewId = review.Id;
                }
            }

            var model = new MovieDetailsViewModel
            {
                PostId    = post.Id,
                Movie     = movie,
                Directors = filmCrew.Where(c => c.Role == MovieRole.Director).ToList(),
                Actors    = filmCrew.Where(c => c.Role == MovieRole.Actor).ToList(),
                ReviewId  = reviewId,
            };

            return(View(model));
        }
        public async Task <HttpResponseMessage> GetMovieByIdAsync(int movieId)
        {
            var movie = await _movieApiService.FindByIdAsync(movieId);

            var movieCredits = await _movieApiService.SearchCreditsAsync(movieId);

            var posterSizes = await _movieApiService.SearchAllPosterSizesAsync();

            var profileSizes = await _movieApiService.SearchAllMovieProfileSizesAsync();

            var backDropSizes = await _movieApiService.SearchAllBackDropSizesAsync();

            if (movie.Error == null)
            {
                //movie.Item.PosterPath = posterSizes.Last() + movie.Item.PosterPath;
                MovieDetailsViewModel movieDetailsModel = new MovieDetailsViewModel()
                {
                    Movie         = movie.Item,
                    MovieCredit   = movieCredits.Item,
                    PosterSizes   = posterSizes,
                    ProfileSizes  = profileSizes,
                    BackDropSizes = backDropSizes
                };

                return(Request.CreateResponse(HttpStatusCode.OK, movieDetailsModel));
            }
            else
            {
                var message = string.Format("Error {0}: {1}", movie.Error.StatusCode, movie.Error.Message);
                return(new HttpResponseMessage()
                {
                    Content = new StringContent(message)
                });
            }
        }
Example #13
0
 public MovieDetailPage(MovieDto movie)
 {
     InitializeComponent();
     BindingContext = model = new MovieDetailsViewModel {
         Movie = movie
     };
 }
        public async Task <IActionResult> MovieDetails(int id)
        {
            var movie = await db.Movies.Include(f => f.MovieGenres).ThenInclude(f => f.Genre).FirstOrDefaultAsync(p => p.Id == id);

            if (movie != null)
            {
                var result = new MovieDetailsViewModel
                {
                    Id           = movie.Id,
                    Name         = movie.Name,
                    RealeaseDate = movie.ReleaseDate,
                    MovieGenres  = movie.MovieGenres.Select(f => f.Genre.Name).ToList(),
                    Actors       = movie.Actors,
                    Country      = movie.Country,
                    Director     = movie.Director,
                    Image        = movie.Image,
                    Price        = movie.Price,
                    Summary      = movie.Summary
                };
                ViewData["Title"] = result.Name;
                var userName = this.HttpContext.User.Identity.Name;
                ViewBag.ReservationsCount = await this.db.Reservations.Where(f => f.User.Email == userName).SumAsync(f => f.Amount);

                return(View(result));
            }

            return(NotFound());
        }
        // GET: Movies/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }



            var movie = await _context.Movies
                        .FirstOrDefaultAsync(m => m.ID == id);

            if (movie == null)
            {
                return(NotFound());
            }

            var mID = movie.GenreID;


            var genre = await _context.Genres
                        .FirstOrDefaultAsync(g => g.ID == mID);

            MovieDetailsViewModel mDetailsModel = new MovieDetailsViewModel();

            mDetailsModel.Movie = movie;
            mDetailsModel.Genre = genre;

            return(View(mDetailsModel));

            /*
             *  Im still pretty unsure about what exactly the '=>' operator means but it may be similar function to 'this'
             *
             *  Here is an example i saw on the internet...
             *
             *      var departments = _context.Departments.Include(d => d.Courses);
             *
             *      the Include() function is used when you are pulling together related data (creates a join query).
             *      Notice that it is used and within its params it looks like that statement is basically declaring a
             *      variable to represent the 'Departments' then specifying what 'thing' in departments you want.
             *
             *      Just some thoughts
             */

            // 3/20/18 10:21pm today is monumental. I just realized I can access the ID property from the frickin obj i pulled from my db. Astounding it took me practically 2 weeks

            // 3/20/18 10:27pm HOW THE F**K DO I RETURN 2 FICKIN MODELSSSSSSSSSSSSSS i knew this would happen to me. Taking a quick break to calm down

            // you bastard im hot on your trail. I found some answers online and I will use them! First up to bat... View Model
            // Im doing this because the article i read said that View models are "Strongly Typed" which i think is a good rule of thumb (If i remember that correctly)
            // I assume its a good idea to go with something strongly typed because it leaves less room for error. It only takes what is defined in its class so everything that
            // it does is expected. At least that is the logic I will go with. What do you think person reading this? Also im def commiting this before I mess everything up. Not that Im
            // very far :Shrug:

            // 3/20/19 11:30pm
            // Im back, and as you can obviously tell, i won. View model = Great success
            // I honestly got so excited I ran around my house 2 times and im still #pumped.
            // I guess the next logical step is to update the index page to look lit afffff. Then we can do whatever else idc.
            // Id like to thank my mother, and my father, and microsoft, and of course my cat.
        }
 /// <inheritdoc />
 /// <summary>
 /// Initializes a new instance of the <see cref="T:MovieLibraryApp.Views.MovieDetailsPage" /> class.
 /// </summary>
 public MovieDetailsPage()
 {
     InitializeComponent();
     NavigationCacheMode = NavigationCacheMode.Enabled;
     _mdvm = new MovieDetailsViewModel();
     _serializationService = SerializationService.Json;
 }
        // GET: Movies/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            var view = new MovieDetailsViewModel
            {
                Movie = await _context.Movie
                        .FirstOrDefaultAsync(m => m.MovieID == id),
                Screenings = await _context.Screening
                             .Include(m => m.Movie)
                             .Include(m => m.Salon)
                             .Include(m => m.Tickets)
                             .Where(m => m.MovieID == id)
                             .ToListAsync()
            };

            if (view.Movie == null)
            {
                return(NotFound());
            }

            return(View(view));
        }
Example #18
0
 public IActionResult SaveUpdate(MovieDetailsViewModel movieUpdate)
 {
     if (ModelState.IsValid)
     {
         _movieRepository.Update(movieUpdate.MovieMovie);
     }
     return(RedirectToAction("Movie", "Movie"));
 }
        public MovieDetailsPage(Result movie)
        {
            InitializeComponent();

            BindingContext = new MovieDetailsViewModel(Navigation, movie);

            ViewModel.MovieDetailsCommand.Execute(null);
        }
Example #20
0
        public IActionResult EditMovie(int id)
        {
            MovieDetailsViewModel moviDetailsVM = GetAll();

            moviDetailsVM.MovieMovie = GetAllMovieDetailsJoined().Where(m => m.MovieMovie.MovieId == id).SingleOrDefault().MovieMovie;

            return(View(moviDetailsVM));
        }
        private async void ShowMovieDetails(int position)
        {
            MovieDetailsViewModel movie = await _movieService.GetMovieById(_movies[position].Id);

            var intent = new Intent(this, typeof(MovieDetailActivity));

            intent.PutExtra("movieDetails", JsonConvert.SerializeObject(movie));
            this.StartActivity(intent);
        }
Example #22
0
        private async void GetAdditionalMovieDetails()
        {
            var localImagePath = this._movie.LocalImageUrl;

            this._movie = await _movieService.GetMovieById(this._movie.Id);

            this._movie.LocalImageUrl = localImagePath;
            this.ViewDidLoad();
        }
Example #23
0
        public ActionResult Details(int id)
        {
            var model = new MovieDetailsViewModel
            {
                MovieDetails = _context.Movies.Include(m => m.Genre).Where(m => m.Id == id).Select(m => m).FirstOrDefault()
            };

            return(View(model));
        }
Example #24
0
        public ActionResult MovieDetails(Guid movieId)
        {
            var model = new MovieDetailsViewModel
            {
                Movie  = _moviefileService.GetSingleMovie(movieId),
                Actors = _moviefileService.GetActorCollection(movieId)
            };

            return(View("../Movie/MovieDetails", model));
        }
Example #25
0
        public IActionResult Delete(int?Id)
        {
            MovieDetailsViewModel movieDetailsViewModel = new MovieDetailsViewModel()
            {
                Movie     = _movieRepository.Delete(Id ?? 1),
                PageTitle = "Employee Details"
            };

            return(RedirectToAction("Index", movieDetailsViewModel));
        }
Example #26
0
        public ViewResult Details(int?id)
        {
            MovieDetailsViewModel movieDetailsViewModel = new MovieDetailsViewModel()
            {
                Movie     = _movieRepository.GetMovie(id ?? 1),
                PageTitle = _movieRepository.GetMovie(id ?? 1).Name
            };

            return(View(movieDetailsViewModel));
        }
        public async Task <MovieDetailsViewModel> GetSummarySingleMovie(string imdbId)
        {
            var ratings = await GetMovieRatings(imdbId);

            var movie = await GetMovieDetails(imdbId);

            MovieDetailsViewModel movieSummaryViewModel = new MovieDetailsViewModel(movie, ratings);

            return(movieSummaryViewModel);
        }
Example #28
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     base.OnNavigatedTo(e);
     if (!string.IsNullOrEmpty(App.movieId))
     {
         var movieId = App.movieId;
         MovieDetailsViewModel vm = new MovieDetailsViewModel(movieId);
         this.DataContext = vm;
     }
 }
Example #29
0
        public MovieDetailPage(Movie movie)
        {
            if (movie == null)
            {
                throw new ArgumentNullException();
            }

            _movie = movie;
            InitializeComponent();
            BindingContext = new MovieDetailsViewModel(new PageService());
        }
Example #30
0
        public void CallGetMovie_OnActivation()
        {
            // Arrange
            _target = new MovieDetailsViewModel(1, _schedulerService, _viewStackService.Object, _moviesService.Object);

            // Act
            _target.Activator.Activate();

            // Assert
            _moviesService.Verify(x => x.GetMovie(1), Times.Once);
        }