// GET: /Default1/ public ActionResult Index() { var genres = new SelectList(db.Genres.Select(g => g.Name).Distinct().ToList()); ViewBag.Genre = genres; var years = new SelectList(db.Movies.Select(m => m.Year).Distinct().ToList()); ViewBag.Year = years; var ratings = new SelectList(db.Movies.Select(m => m.Rating).Distinct().ToList()); ViewBag.Rating = ratings; FiltInfo filt = new FiltInfo(); filt.SortField = "Title"; filt.SortDirection = "descending"; filt.PageSize = 25; filt.PageCount = Convert.ToInt32(Math.Ceiling((double)(db.Movies.Count() / filt.PageSize))); filt.CurrentPageIndex = 0; var movies = db.Movies .Include(m => m.Director) .Include(m => m.YearRange) .Include(m => m.Genres) .Include(m => m.Files).OrderBy(m => m.Title).Take(filt.PageSize); ViewBag.SortingInfo = filt; return(View(movies.ToList())); }
public ActionResult Index([Bind(Include = "Year, Rating, Genre")] FiltInfo filt) { var genremovie = new GenreMovieViewModel(); genremovie.Movies = null; if (filt.Year == 0 && filt.Rating == 0 && filt.Genre != null) { genremovie.Genres = db.Genres.Include(g => g.Movies).Where(g => g.Name == filt.Genre).OrderBy(g => g.Name); genremovie.Movies = genremovie.Genres.Where(g => g.Name == filt.Genre).Single().Movies; } else if (filt.Genre == null && (filt.Rating != 0 || filt.Year != 0)) { genremovie.Movies = db.Movies.Include(m => m.Genres.Select(g => g.Movies)).Where(m => m.Year == filt.Year || m.Rating == filt.Rating).ToList(); } else { genremovie.Movies = db.Movies .Include(i => i.Director) .Include(i => i.Genres) .Include(i => i.YearRange) .Include(i => i.Files) .OrderBy(i => i.Title).ToList(); } //repopulate ViewBag var genres = new SelectList(db.Genres.Select(g => g.Name).Distinct().ToList()); ViewBag.Genre = genres; var years = new SelectList(db.Movies.Select(m => m.Year).Distinct().ToList()); ViewBag.Year = years; var ratings = new SelectList(db.Movies.Select(m => m.Rating).Distinct().ToList()); ViewBag.Rating = ratings; ViewBag.SortingInfo = filt; IEnumerable <Movie> model = genremovie.Movies; return(View(model)); }