public List <Model.Movie> Get(Model.Requests.MovieSearchRequest request) { var query = _context.Movies.AsQueryable(); if (!string.IsNullOrWhiteSpace(request.Title)) { query = query.Where(m => m.Title.ToLower().StartsWith(request.Title.ToLower())); } if (!string.IsNullOrWhiteSpace(request.Genre)) { query = query.Where(m => m.Genre.ToLower().StartsWith(request.Genre.ToLower())); } if (request.Year >= 0) { query = query.Where(m => m.Year >= request.Year); } if (request.Rating >= 0) { query = query.Where(m => m.Rating >= request.Rating); } if (!string.IsNullOrWhiteSpace(request.Standalone) && request.Standalone == "true") { query = query.Where(m => m.Standalone); } if (!string.IsNullOrWhiteSpace(request.Standalone) && request.Standalone == "false") { query = query.Where(m => !m.Standalone); } return(_mapper.Map <List <Model.Movie> >(query.ToList())); }
private async void searchBtn_Click(object sender, EventArgs e) { var messageBox = new CustomMessageBox(); if (!string.IsNullOrWhiteSpace(RatingSearch.Text) && !decimal.TryParse(RatingSearch.Text, out decimal n)) { messageBox.Show("Enter a valid rating (0-10)!", "error"); return; } decimal rating = (!string.IsNullOrWhiteSpace(RatingSearch.Text)) ? decimal.Parse(RatingSearch.Text) : (0); if (rating < 0 || rating > 10) { messageBox.Show("Enter a valid rating (0-10)!", "error"); return; } string standalone = ""; if (StandaloneCB.Checked) { standalone = "true"; } else { standalone = "false"; } var search = new Model.Requests.MovieSearchRequest() { Rating = rating, Standalone = standalone, Title = Movie.Text, Year = int.Parse(YearSearch.Value.ToString()), Genre = GenreBox.Text }; var list = await _apiService.Get <List <Model.Movie> >(search); list.Sort((a, b) => a.Title.CompareTo(b.Title)); dgvMovies.AutoGenerateColumns = false; dgvMovies.DataSource = list; }
public async Task ShowMovies() { ShowFilters = "True"; Model.Requests.MovieSearchRequest request = new Model.Requests.MovieSearchRequest(); if (Genre != null) { request.Genre = Genre; if (request.Genre == "All") { request.Genre = ""; } } request.Rating = Rating; var movies = await _moviesApi.Get <List <Model.Movie> >(request); movies.RemoveAll(m => !m.Standalone); movies.Sort((a, b) => a.Title.CompareTo(b.Title)); Movies.Clear(); foreach (var movie in movies) { Movies.Add(movie); } if (Genres.Count == 0) { var list = new List <string>(); foreach (var movie in movies) { list.Add(movie.Genre); } list = list.Distinct().ToList(); list.Sort(); list.Insert(0, "All"); foreach (var genre in list) { Genres.Add(genre); } } }
public async Task OnSearch() { if (Search != null) { Genre = "All"; Rating = 0; Model.Requests.MovieSearchRequest request = new Model.Requests.MovieSearchRequest() { Title = Search }; var movies = await _moviesApi.Get <List <Model.Movie> >(request); Movies.Clear(); movies.Sort((a, b) => a.Title.CompareTo(b.Title)); foreach (var movie in movies) { Movies.Add(movie); } } }
public ActionResult <List <Model.Movie> > Get([FromQuery] Model.Requests.MovieSearchRequest request) { return(_service.Get(request)); }