public IActionResult EditGenre(int id, MovieViewViewModel model)
        {
            Movie movie = _database.Movies.FirstOrDefault(a => a.Id == id);

            List <MovieGenreMovie> movieGenreMovies = _database.MovieGenreMovies.Where(a => a.MovieId == id).ToList();

            _database.MovieGenreMovies.RemoveRange(movieGenreMovies);
            _database.SaveChanges();

            if (model.GenreString != null)
            {
                string[] genres = model.GenreString.Split(",");

                foreach (var genre in genres)
                {
                    MovieGenre movieGenre = _database.MovieGenres.FirstOrDefault(a => a.Name == genre);
                    _database.MovieGenreMovies.Add(new MovieGenreMovie {
                        MovieGenreId = movieGenre.Id, MovieId = movie.Id
                    });
                }
            }


            _database.SaveChanges();


            return(RedirectToAction("View", "Movie", new { Id = id }));
        }
示例#2
0
        public ViewResult MovieView(string searchString, string currentFilter, string sortOrder, int?page)
        {
            ViewBag.CurrentSort      = sortOrder;
            ViewBag.TitlePLParm      = string.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewBag.PremiereDateParm = sortOrder == "Date" ? "date_desc" : "Date";
            ViewBag.DurationParm     = sortOrder == "Duration" ? "duration_desc" : "Duration";

            ViewBag.MovieFilter = searchString;

            var sortMovieByEnum = SortMovieBy.Name;
            var sortOrderEnum   = SortOrder.Asc;

            switch (sortOrder)
            {
            case "name_desc":
                sortOrderEnum = SortOrder.Desc;
                break;

            case "date_desc":
                sortMovieByEnum = SortMovieBy.PremiereDate;
                sortOrderEnum   = SortOrder.Desc;
                break;

            case "Date":
                sortMovieByEnum = SortMovieBy.PremiereDate;
                break;

            case "duration_desc":
                sortMovieByEnum = SortMovieBy.Duration;
                sortOrderEnum   = SortOrder.Desc;
                break;

            case "Duration":
                sortMovieByEnum = SortMovieBy.Duration;
                break;
            }
            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }
            ViewBag.MovieFilter = searchString;
            var moviesDto = _movieDataProvider.SearchMovie(searchString, sortMovieByEnum, sortOrderEnum);

            var pageSize   = 10;
            var pageNumber = (page ?? 1);

            var viewModel = new MovieViewViewModel()
            {
                MovieList = moviesDto.ToPagedList(pageNumber, pageSize)
            };

            return(View(viewModel));
        }
        public IActionResult EditReleaseDate(int id, MovieViewViewModel model)
        {
            Movie movie = _database.Movies.FirstOrDefault(a => a.Id == id);

            movie.ReleaseDate = model.ReleaseDate;

            _database.SaveChanges();

            return(RedirectToAction("View", "Movie", new { Id = id }));
        }
        public IActionResult EditPlayTime(int id, MovieViewViewModel model)
        {
            Movie movie = _database.Movies.FirstOrDefault(a => a.Id == id);

            string playTime = model.PlayTime.ToString();

            string[] playTimeDivided = playTime.Split(":");

            movie.PlayTime = new TimeSpan(Convert.ToInt16(playTimeDivided[0]), Convert.ToInt16(playTimeDivided[1]), 0);

            _database.SaveChanges();

            return(RedirectToAction("View", "Movie", new { Id = id }));
        }
示例#5
0
        public async Task <IActionResult> View(int id)
        {
            var moviecredits = _context.Movies.Where(mc => mc.Id == id);

            var credits = from c in _context.MovieCredits
                          where c.MovieId == id
                          select c.Credit;

            var platforms = from p in _context.MoviePlatforms
                            where p.MovieId == id
                            select p.Platform;

            var movieInformationViewModel = new MovieViewViewModel
            {
                Movie     = moviecredits.FirstOrDefault(),
                Credits   = await credits.ToListAsync(),
                Platforms = await platforms.ToListAsync()
            };

            return(View(movieInformationViewModel));
        }
        public IActionResult EditDirectors(int id, MovieViewViewModel model)
        {
            Movie movie = _database.Movies.FirstOrDefault(a => a.Id == id);

            List <MovieCrewMember> DirectorsFromDatabase = _database.MovieCrewMember.Where(a => a.MovieId == id && a.MemberRole == MovieCrewMember.Role.Director).ToList();

            _database.MovieCrewMember.RemoveRange(DirectorsFromDatabase);

            List <MovieCrewMember> BothFromDatabase = _database.MovieCrewMember.Where(a => a.MovieId == id && a.MemberRole == MovieCrewMember.Role.Both).ToList();

            foreach (var both in BothFromDatabase)
            {
                both.MemberRole = MovieCrewMember.Role.Actor;
            }

            _database.SaveChanges();

            if (model.ActorsString != null)
            {
                string[] directors = model.DirectorsString.Split(",&nbsp;");

                foreach (var directorString in directors)
                {
                    CrewMember crewMember = new CrewMember();

                    if (!_database.CrewMembers.Any(a => a.Name == directorString))
                    {
                        crewMember.Name = directorString;
                        _database.CrewMembers.Add(crewMember);
                        _database.SaveChanges();
                    }
                    else
                    {
                        crewMember = _database.CrewMembers.FirstOrDefault(a => a.Name == directorString);
                    }

                    _database.SaveChanges();

                    MovieCrewMember movieCrewMember = new MovieCrewMember();

                    if (!_database.MovieCrewMember.Any(a => a.MovieId == movie.Id && a.CrewMemberId == crewMember.Id))
                    {
                        movieCrewMember.MovieId      = movie.Id;
                        movieCrewMember.CrewMemberId = crewMember.Id;
                        movieCrewMember.MemberRole   = MovieCrewMember.Role.Director;
                    }
                    else
                    {
                        movieCrewMember.MemberRole = MovieCrewMember.Role.Both;
                    }


                    _database.MovieCrewMember.Add(movieCrewMember);
                }
            }


            _database.SaveChanges();


            return(RedirectToAction("View", "Movie", new { Id = id }));
        }
示例#7
0
        public IActionResult View(int id)
        {
            Movie movie = _database.Movies.FirstOrDefault(a => a.Id == id);

            List <MovieGenreMovie>     movieGenreMovie = _database.MovieGenreMovies.Where(a => a.MovieId == id).ToList();
            List <MovieGenre>          movieGenre      = _database.MovieGenres.Where(a => movieGenreMovie.Any(b => b.MovieGenreId == a.Id)).ToList();
            List <MovieGenreViewModel> genreViewModels = new List <MovieGenreViewModel>();

            foreach (var item in movieGenre)
            {
                genreViewModels.Add(new MovieGenreViewModel {
                    Name = item.Name
                });
            }

            List <MovieCrewMember>          movieActors      = _database.MovieCrewMember.Where(a => a.MovieId == id && (a.MemberRole == MovieCrewMember.Role.Actor || a.MemberRole == MovieCrewMember.Role.Both)).ToList();
            List <CrewMember>               Actors           = _database.CrewMembers.Where(a => movieActors.Any(b => b.CrewMemberId == a.Id)).ToList();
            List <MovieArtistListViewModel> artistViewModels = new List <MovieArtistListViewModel>();

            foreach (var item in Actors)
            {
                artistViewModels.Add(new MovieArtistListViewModel {
                    ArtistName = item.Name
                });
            }

            List <MovieCrewMember>          movieDirectors     = _database.MovieCrewMember.Where(a => a.MovieId == id && (a.MemberRole == MovieCrewMember.Role.Director || a.MemberRole == MovieCrewMember.Role.Both)).ToList();
            List <CrewMember>               Directors          = _database.CrewMembers.Where(a => movieDirectors.Any(b => b.CrewMemberId == a.Id)).ToList();
            List <MovieArtistListViewModel> directorViewModels = new List <MovieArtistListViewModel>();

            foreach (var item in Directors)
            {
                directorViewModels.Add(new MovieArtistListViewModel {
                    ArtistName = item.Name
                });
            }

            MovieViewViewModel model = new MovieViewViewModel()
            {
                Id          = movie.Id,
                Title       = movie.Title,
                Description = movie.Description,
                PlayTime    = movie.PlayTime,
                ReleaseDate = movie.ReleaseDate,
                Genre       = genreViewModels,
                Actors      = artistViewModels,
                Directors   = directorViewModels,
                Photo       = movie.Photo
            };



            List <MovieGenreViewModel> movieGenreList = new List <MovieGenreViewModel>();

            foreach (var genre in _database.MovieGenres)
            {
                movieGenreList.Add(new MovieGenreViewModel {
                    Name = genre.Name
                });
            }

            model.GenreNames = movieGenreList;

            List <MovieArtistListViewModel> crewMembersList = new List <MovieArtistListViewModel>();

            foreach (var artist in _database.CrewMembers)
            {
                crewMembersList.Add(new MovieArtistListViewModel {
                    ArtistName = artist.Name
                });
            }

            model.CrewMemberNames = crewMembersList;

            return(View(model));
        }