in app/Controllers/HomeController.cs [38:77]
public async Task<IActionResult> Index(string movieGenre, string searchString, int? winYear)
{
// Use LINQ to get list of genres.
var genreQuery = from m in _context.Movie
orderby m.Genre
select m.Genre;
var yearQuery = from m in _context.Movie
orderby m.Year
select m.Year;
var movies = from m in _context.Movie
select m;
if (!string.IsNullOrEmpty(searchString))
{
movies = movies.Where(s => s.Title.ToLower().Contains(searchString.ToLower().Trim()));
}
if (!string.IsNullOrEmpty(movieGenre))
{
movies = movies.Where(s => s.Genre.ToLower().Equals(movieGenre.ToLower().Trim()));
}
if(winYear.HasValue && winYear.Value > 0)
{
movies = movies.Where(s => s.Year == winYear.Value);
}
var movieGenreVM = new MovieGenreViewModel
{
MovieGenre = movieGenre,
SearchString = searchString,
Genres = new SelectList(await genreQuery.Distinct().ToListAsync()),
Years = new SelectList(await yearQuery.Distinct().ToListAsync()),
Movies = await movies.ToListAsync()
};
return View(movieGenreVM);
}