This paste brought to you by Pastebin. View Raw

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNetCore.Mvc;
  6. using Microsoft.AspNetCore.Mvc.RazorPages;
  7. using Microsoft.EntityFrameworkCore;
  8. using RazorPagesMovie.Models;
  9. using Microsoft.AspNetCore.Mvc.Rendering;
  10.  
  11. namespace RazorPagesMovie.Pages.Movies
  12. {
  13.     public class IndexModel : PageModel
  14.     {
  15.         private readonly RazorPagesMovie.Models.RazorPagesMovieContext _context;
  16.  
  17.         public IndexModel(RazorPagesMovie.Models.RazorPagesMovieContext context)
  18.         {
  19.             _context = context;
  20.         }
  21.  
  22.         public IList<Movie> Movie { get;set; }
  23.         public SelectList Genres;
  24.         public string MovieGenre { get; set; }
  25.  
  26.  
  27.         public async Task OnGetAsync(string movieGenre, string searchString)
  28.         {
  29.             IQueryable<string> genreQuery = from m in _context.Movie
  30.                                             orderby m.Genre
  31.                                             select m.Genre;
  32.  
  33.             var movies = from m in _context.Movie
  34.                          select m;
  35.  
  36.             if(!String.IsNullOrEmpty(searchString))
  37.             {
  38.                 movies = movies.Where(s => s.Title.Contains(searchString));
  39.             }
  40.  
  41.             if(!String.IsNullOrEmpty(movieGenre))
  42.             {
  43.                 movies = movies.Where(x => x.Genre == movieGenre);
  44.             }
  45.  
  46.             Genres = new SelectList(await genreQuery.Distinct().ToListAsync());
  47.             Movie = await movies.ToListAsync();
  48.         }
  49.     }
  50. }