/// <summary>Add one or more items to the user's watchlist by IDs</summary>
 /// <param name="movieIds">A collection of movie IDs</param>
 /// <param name="showIds">A collection of show IDs</param>
 /// <param name="episodeIds">A collection of episode IDs</param>
 /// <returns>See summary</returns>
 public async Task <TraktAddResponse> AddToWatchlistAsync(IEnumerable <string> movieIds, IEnumerable <string> showIds, IEnumerable <string> episodeIds)
 {
     return(await AddToWatchlistAsync(
                TraktMovieFactory.FromIds <TraktMovie>(movieIds),
                TraktShowFactory.FromIds <TraktShow>(showIds),
                TraktEpisodeFactory.FromIds <TraktEpisode>(episodeIds)));
 }
 /// <summary>Rate one or more items</summary>
 /// <param name="movieIds">A collection of movie IDs</param>
 /// <param name="showIds">A collection of show IDs</param>
 /// <param name="episodeIds">A collection of episode IDs</param>
 /// <returns>See summary</returns>
 public async Task <TraktAddResponse> AddRatingsAsync(IEnumerable <string> movieIds, IEnumerable <string> showIds, IEnumerable <string> episodeIds)
 {
     return(await AddRatingsAsync(
                TraktMovieFactory.FromIds <TraktMovieWithRatingsMetadata>(movieIds),
                TraktShowFactory.FromIds <TraktShowWithRatingsMetadata>(showIds),
                TraktEpisodeFactory.FromIds <TraktEpisodeWithRatingsMetadata>(episodeIds)));
 }
 /// <summary>Remove one or more items from a user's watched history by ID including all watches, scrobbles, and checkins</summary>
 /// <param name="movieIds">A collection of movie IDs</param>
 /// <param name="showIds">A collection of show IDs</param>
 /// <param name="episodeIds">A collection of episode IDs</param>
 /// <returns>See summary</returns>
 public async Task <TraktRemoveResponse> MarkUnwatchedAsync(IEnumerable <string> movieIds, IEnumerable <string> showIds, IEnumerable <string> episodeIds)
 {
     return(await MarkUnwatchedAsync(
                TraktMovieFactory.FromIds(movieIds),
                TraktShowFactory.FromIds(showIds),
                TraktEpisodeFactory.FromIds(episodeIds)));
 }
 /// <summary>Remove one or more items from the user's collection by IDs</summary>
 /// <param name="movieIds">A collection of movie IDs</param>
 /// <param name="showIds">A collection of show IDs</param>
 /// <param name="episodeIds">A collection of episode IDs</param>
 /// <returns>See summary</returns>
 public async Task <TraktRemoveResponse> RemoveFromCollectionAsync(IEnumerable <string> movieIds, IEnumerable <string> showIds, IEnumerable <string> episodeIds)
 {
     return(await RemoveFromCollectionAsync(
                TraktMovieFactory.FromIds(movieIds),
                TraktShowFactory.FromIds(showIds),
                TraktEpisodeFactory.FromIds(episodeIds)));
 }
 /// <summary>Remove one or more items from a custom list</summary>
 /// <param name="listId">The list ID</param>
 /// <param name="movieIds">A collection of movie IDs</param>
 /// <param name="showIds">A collection of show IDs</param>
 /// <param name="episodeIds">A collection of episode IDs</param>
 /// <param name="personIds">A collection of person IDs</param>
 /// <returns>See summary</returns>
 public async Task <TraktRemoveResponse> RemoveFromListAsync(string listId, IEnumerable <string> movieIds, IEnumerable <string> showIds, IEnumerable <string> episodeIds, IEnumerable <string> personIds)
 {
     return(await RemoveFromListAsync(
                listId,
                TraktMovieFactory.FromIds <TraktMovie>(movieIds),
                TraktShowFactory.FromIds <TraktShow>(showIds),
                null,          //Seasons only have numeric IDs. For simplicity, exclude them from this overload
                TraktEpisodeFactory.FromIds <TraktEpisode>(episodeIds),
                TraktPersonFactory.FromIds <TraktPerson>(personIds)));
 }