49 lines
1.4 KiB
C#
49 lines
1.4 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using RazorPagesMovie.Models;
|
|
|
|
namespace RazorPagesMovie.Pages.MoviePages;
|
|
|
|
public class IndexModel : PageModel
|
|
{
|
|
private readonly RazorPagesMovie.Data.RazorPagesMovieContext _context;
|
|
|
|
public IndexModel(RazorPagesMovie.Data.RazorPagesMovieContext context)
|
|
{
|
|
_context = context;
|
|
}
|
|
|
|
public IList<Movie> Movie { get; set; } = default!;
|
|
|
|
[BindProperty(SupportsGet = true)]
|
|
public string? SearchString { get; set; }
|
|
|
|
public SelectList? Genres { get; set; }
|
|
|
|
[BindProperty(SupportsGet = true)]
|
|
public string? MovieGenre { get; set; }
|
|
|
|
public async Task OnGetAsync()
|
|
{
|
|
IQueryable<string> genreQuery = from m in _context.Movie
|
|
orderby m.Genre
|
|
select m.Genre;
|
|
|
|
var movies = from m in _context.Movie select m;
|
|
|
|
if (!string.IsNullOrEmpty(SearchString))
|
|
{
|
|
movies = movies.Where(s => s.Title.Contains(SearchString));
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(MovieGenre))
|
|
{
|
|
movies = movies.Where(x => x.Genre == MovieGenre);
|
|
}
|
|
|
|
Genres = new SelectList(await genreQuery.Distinct().ToListAsync());
|
|
Movie = await movies.ToListAsync();
|
|
}
|
|
} |