public async Task <Paginated <MovieDto> > SearchAsync( SearchMoviesRequest request, CancellationToken cancellationToken = default) { var query = _mapper.Map <PaginatedMovieQuery>(request); var result = await _context.SearchMoviesAsync(query, cancellationToken); return(_mapper.Map <Paginated <MovieDto> >(result)); }
public async Task <List <Movie> > SearchMoviesAsync(SearchMoviesRequest searchMoviesRequest) { var allMovies = await _moviesRepository.GetAllMoviesAsync(); return(allMovies.Where(x => !string.IsNullOrEmpty(searchMoviesRequest.SearchString) && x.Title.Contains(searchMoviesRequest.SearchString) && (!searchMoviesRequest.YearOfRelease.HasValue || x.YearOfRelease == searchMoviesRequest.YearOfRelease) && (searchMoviesRequest.Genres == null || searchMoviesRequest.Genres.Count == 0 || x.Genres.Split(",").Intersect(searchMoviesRequest.Genres).ToList().Count > 0) ).Select(m => m.ToMovieContractObject()).ToList()); }
public async Task <IActionResult> SearchMoviesAsync([FromBody] SearchMoviesRequest searchMoviesRequest) { if (!(searchMoviesRequest != null && (!string.IsNullOrEmpty(searchMoviesRequest.SearchString) || searchMoviesRequest.YearOfRelease.HasValue || searchMoviesRequest.Genres?.Count > 0))) { return(BadRequest()); } List <Movie> movies = await _moviesDomain.SearchMoviesAsync(searchMoviesRequest); if (!movies.HasAny()) { return(NotFound()); } return(Ok(movies)); }
public virtual Task <SearchMoviesResponse> GetAsync(SearchMoviesRequest request) => Client.SendAsync <SearchMoviesResponse>(request);
public async Task <Paginated <MovieDto> > SearchMovies( [FromQuery] SearchMoviesRequest request, CancellationToken cancellationToken = default) => await _service.SearchAsync(request, cancellationToken);