/// <summary> /// Reads information about specific movies based on the query parameters. /// </summary> /// <param name="limit">The amount of movies to be returned by the query.</param> /// <param name="page">The set of movies to display (eg limit=15 and set=2 will show you movies 15-30).</param> /// <param name="quality">The quality type to filter by.</param> /// <param name="minimumRating">The minimum movie rating for display (0-9, inclusive).</param> /// <param name="queryTerm">The keywords to search by (maybe be multiple keywords, eg. britney, spears).</param> /// <param name="genre">The genre from which to display movies from.</param> /// <param name="sortBy">The sorting parameter.</param> /// <param name="orderBy">The order in which the movies will be displayed.</param> /// <returns>A list of movies that match the query parameters.</returns> public static List <Movie> ListMovies(byte limit = 20, uint page = 1, DirectTorrent.Logic.Models.Quality quality = DirectTorrent.Logic.Models.Quality.ALL, byte minimumRating = 0, string queryTerm = "", string genre = "ALL", DirectTorrent.Logic.Models.Sort sortBy = DirectTorrent.Logic.Models.Sort.DateAdded, DirectTorrent.Logic.Models.Order orderBy = DirectTorrent.Logic.Models.Order.Descending) { var temp = new List <Movie>(); // Queries Yify for movies var source = ApiWrapper.ListMovies(Format.JSON, limit, page, qualityToQuality(quality), minimumRating, queryTerm, genre, sortToSort(sortBy), orderToOrder(orderBy)); // Maps DTOs to business models source.Data.Movies.ForEach(x => { var tempMov = new Movie(x); temp.Add(tempMov); }); return(temp); }
private static DirectTorrent.Data.Yify.Models.Quality qualityToQuality(DirectTorrent.Logic.Models.Quality quality) { switch (quality) { case Logic.Models.Quality.HD: return(Data.Yify.Models.Quality.HD); case Logic.Models.Quality.FHD: return(Data.Yify.Models.Quality.FHD); case Logic.Models.Quality.ALL: return(Data.Yify.Models.Quality.ALL); case Logic.Models.Quality.ThreeD: return(Data.Yify.Models.Quality.ThreeD); } throw new ArgumentException("Quality is not valid.", "quality"); }