sortMovies function

List<Movie> sortMovies(
  1. List<Movie> movies,
  2. MovieSortCriteria criteria
)

Sorts a list of movies based on the specified criteria.

Implementation

List<Movie> sortMovies(List<Movie> movies, MovieSortCriteria criteria) {
  switch (criteria) {
    case MovieSortCriteria.nameAsc:
      movies.sort((a, b) => a.title.compareTo(b.title));
      break;
    case MovieSortCriteria.nameDesc:
      movies.sort((a, b) => b.title.compareTo(a.title));
      break;
    case MovieSortCriteria.ratingAsc:
      movies.sort((a, b) => a.voteAverage.compareTo(b.voteAverage));
      break;
    case MovieSortCriteria.ratingDesc:
      movies.sort((a, b) => b.voteAverage.compareTo(a.voteAverage));
      break;
    case MovieSortCriteria.dateAsc:
      movies.sort((a, b) => a.releaseDate.compareTo(b.releaseDate));
      break;
    case MovieSortCriteria.dateDesc:
      movies.sort((a, b) => b.releaseDate.compareTo(a.releaseDate));
      break;
  }
  return movies;
}