Example #1
0
        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));
        }