public IEnumerable <Movie> GetAllFilteredMovies(FilterMovieDto filterMovieDto) { var moviesQueryable = _context.Movies.AsQueryable(); if (!string.IsNullOrWhiteSpace(filterMovieDto.Title)) { moviesQueryable = moviesQueryable .Where(movie => movie.Title .Contains(filterMovieDto.Title)); } if (filterMovieDto.InTheaters) { moviesQueryable = moviesQueryable .Where(movie => movie.InTheater); } if (filterMovieDto.UpcomingReleases) { moviesQueryable = moviesQueryable .Where(movie => movie.ReleaseDate > DateTime.Today); } if (filterMovieDto.GenreId != 0) { moviesQueryable = moviesQueryable .Where(movie => movie.MovieGenres .Select(movieGenres => movieGenres.GenreId) .Contains(filterMovieDto.GenreId) ); } return(moviesQueryable.ToList()); }
public async ValueTask <ActionResult <IEnumerable <ReadMovieDto> > > GetAllFilteredMovies([FromQuery] FilterMovieDto filterMovieDto) { var filteredMovies = _repo.GetAllFilteredMovies(filterMovieDto); if (!filteredMovies.Any()) { return(Ok(new List <ReadMovieDto>())); } var filteredReadMovieDto = _mapper.Map <IEnumerable <ReadMovieDto> >(filteredMovies); return(Ok(filteredReadMovieDto)); }
public async ValueTask <IEnumerable <Movie> > RetrieveMovieByFilterAsync(FilterMovieDto filterMovieDto) => await _apiBroker.GetAllMovieAsync($"/filter?Title={filterMovieDto.Title}&GenreId={filterMovieDto.GenreId}&InTheaters={filterMovieDto.InTheaters}&UpcomingReleases={filterMovieDto.UpcomingReleases}");