Пример #1
0
        public IActionResult FilterMovie(FilterMovie search)
        {
            //Validating filter parameter
            if (search == null)
            {
                return(BadRequest());
            }

            if (string.IsNullOrEmpty(search.Title) &&
                search.Year == 0 &&
                string.IsNullOrEmpty(search.Genres))
            {
                return(BadRequest());
            }

            var resp = _repository.GetMovieDetails()
                       .Where(x => search.Year != 0 && x.Year == search.Year ||
                              !string.IsNullOrEmpty(search.Genres) && x.Genres.Contains(search.Genres) ||
                              !string.IsNullOrEmpty(search.Title) && x.Title.Equals(search.Title))
                       .OrderBy(y => y.Title)
                       .ToList();

            if (resp.Count == 0)
            {
                return(NotFound());
            }

            return(Ok(resp));
        }
Пример #2
0
        public IEnumerable <MovieList> GetMovieListFillted(FilterMovie fm)
        {
            Command cmd = new Command("GetFilletedMovieList", true);

            if (fm.Category != null)
            {
                cmd.AddParameter("Category", fm.Category);
            }

            if (fm.Actor != null)
            {
                cmd.AddParameter("Actor", fm.Actor);
            }

            if (fm.Title != null)
            {
                cmd.AddParameter("Title", fm.Title);
            }

            if (fm.Langage != null)
            {
                cmd.AddParameter("Langage", fm.Langage);
            }

            if (fm.KeyWord != null)
            {
                cmd.AddParameter("KeyWord", fm.KeyWord);
            }

            return(_connection.ExecuteReader(cmd, ConvertList));
        }
Пример #3
0
        public async Task <IActionResult> GetAsync([FromQuery] FilterMovie filterMovie)
        {
            Specification <Movie> spec = Specification <Movie> .All;

            if (filterMovie.ForKidsOnly)
            {
                spec = spec.And(new MovieForKidsSpecification());
            }
            if (filterMovie.OnCd)
            {
                spec = spec.And(new AvailabeOnCDSpecification());
            }
            if (!string.IsNullOrWhiteSpace(filterMovie.Director))
            {
                spec = spec.And(new MovieDirectedBySpecification(filterMovie.Director));
            }
            var repository = (MovieRepository)_unitOfWork.Repository <Movie>();
            var result     = await repository.FindAsync(
                spec,
                filterMovie.MinimunRating,
                filterMovie.Page,
                filterMovie.PageSize);

            var movieDto = result.Select(s => new MovieDto
            {
                Id          = s.Id,
                Director    = s.Director.Name,
                Genre       = s.Genre,
                MpaaRating  = s.MpaaRating.ToString(),
                Name        = s.Name,
                Rating      = s.Rating,
                ReleaseDate = s.ReleaseDate
            });

            return(result is null?NotFound() : (IActionResult)Ok(movieDto.ToList()));
        }
 public IEnumerable <MovieList> GetMovieListFiltered([FromBody] FilterMovie fm)
 {
     return(_movieService.GetMovieListFillted(fm));
 }