public List <MovieGenreVM> GetMovieGenreVMs() { var result = from movie in context.Movies join mg in context.MovieGenres on movie.Id equals mg.MovieId join genre in context.Genres on mg.GenreId equals genre.Id select new { movie.Id, movie.MovieName, movie.Description, movie.Duration, genre.GenreName }; List <MovieGenreVM> movieGenreVMs = new List <MovieGenreVM>(); foreach (var mg in result) { bool exist = false; foreach (var mgVM in movieGenreVMs) { if (mg.Id == mgVM.MovieId) { exist = true; mgVM.GenreName += "," + mg.GenreName; break; } } if (exist == false || movieGenreVMs.Count == 0) { var moviegenre = new MovieGenreVM { MovieId = mg.Id, MovieName = mg.MovieName, Description = mg.Description, Duration = mg.Duration, GenreName = mg.GenreName }; movieGenreVMs.Add(moviegenre); } } return(movieGenreVMs); }
// GET: Movies public async Task <IActionResult> Index(string movieGenre, string searchString) { IQueryable <string> genreQuery = from m in _DB.Movies orderby m.Genre select m.Genre; var movies = from m in _DB.Movies select m; if (!string.IsNullOrEmpty(searchString)) { movies = movies.Where(s => s.Title.ToLower().Contains(searchString.ToLower())); } if (!string.IsNullOrWhiteSpace(movieGenre)) { movies = movies.Where(x => x.Genre.ToLower() == movieGenre.ToLower()); } var movieGenreVM = new MovieGenreVM { Genres = new SelectList(await genreQuery.Distinct().ToListAsync()), Movies = await movies.ToListAsync() }; return(View(movieGenreVM)); }
public IActionResult Create(MovieGenreVM movieGenreVM) { foreach (var obj in movieGenreVM.GenreCheckBoxList) { if (obj.IsChecked) { MovieGenre movieGenre = new MovieGenre() { IdMovie = movieGenreVM.IdMovie, IdGenre = obj.Id }; _db.Add(movieGenre); _db.SaveChanges(); } } return(RedirectToAction("Index", new { id = movieGenreVM.IdMovie })); }
public IActionResult Create(int Id) { var existingGenresIds = _db.MovieGenre.Where(mg => mg.IdMovie == Id).Select(mg => mg.IdGenre).ToArray(); MovieGenreVM movieGenreVM = new MovieGenreVM() { IdMovie = Id, GenreCheckBoxList = _db.Genre.Where(g => !existingGenresIds.Contains(g.Id)).Select(g => new CheckBoxItem { Id = g.Id, Object = g, IsChecked = false }).ToList() }; return(View(movieGenreVM)); }