示例#1
0
        private void UpdateMovieGenres(string[] selectedGenres, Movie movieToUpdate)
        {
            if (selectedGenres == null)
            {
                movieToUpdate.GenreAssigns = new List <GenreAssign>();
                return;
            }

            var selectedGenreHS = new HashSet <string>(selectedGenres);
            var movieGenres     = new HashSet <int>
                                      (movieToUpdate.GenreAssigns.Select(c => c.Genre.GenreID));

            foreach (var genre in _context.Genres)
            {
                if (selectedGenreHS.Contains(genre.GenreID.ToString()))
                {
                    if (!movieGenres.Contains(genre.GenreID))
                    {
                        movieToUpdate.GenreAssigns.Add(new GenreAssign {
                            MovieID = movieToUpdate.MovieID, GenreID = genre.GenreID
                        });
                    }
                }
                else
                {
                    if (movieGenres.Contains(genre.GenreID))
                    {
                        GenreAssign genreToRemove = movieToUpdate.GenreAssigns.FirstOrDefault(i => i.GenreID == genre.GenreID);
                        _context.Remove(genreToRemove);
                    }
                }
            }
        }
示例#2
0
        public async Task <IActionResult> Create([Bind("MovieName, CreationDate, Active")] Movie movie, string[] selectedGenres)
        {
            if (selectedGenres != null)
            {
                movie.GenreAssigns = new List <GenreAssign>();
                foreach (var genre in selectedGenres)
                {
                    var genreToAdd = new GenreAssign {
                        MovieID = movie.MovieID, GenreID = int.Parse(genre)
                    };
                    movie.GenreAssigns.Add(genreToAdd);
                }
            }
            if (ModelState.IsValid)
            {
                _context.Add(movie);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            PopulateAssignedGenreData(movie);
            return(View(movie));
        }