public async Task Index()

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);
        }