public async Task<List<TraktSyncResponse>> SendLibraryRemovalsAsync(List<TraktShowCollected> uncollectedEpisodes, TraktUser traktUser, CancellationToken cancellationToken) { if (uncollectedEpisodes == null) throw new ArgumentNullException(nameof(uncollectedEpisodes)); if (traktUser == null) throw new ArgumentNullException(nameof(traktUser)); var responses = new List<TraktSyncResponse>(); var chunks = uncollectedEpisodes.ToChunks(100); foreach (var chunk in chunks) { var data = new TraktSyncUncollected { shows = chunk.ToList() }; var url = TraktUris.SyncCollectionRemove; using (var response = await PostToTrakt(url, data, cancellationToken, traktUser).ConfigureAwait(false)) { responses.Add(_jsonSerializer.DeserializeFromStream<TraktSyncResponse>(response)); } } return responses; }
/// <summary> /// Add or remove a list of movies to/from the users trakt.tv library /// </summary> /// <param name="movies">The movies to add</param> /// <param name="traktUser">The user who's library is being updated</param> /// <param name="cancellationToken">The cancellation token.</param> /// <param name="eventType"></param> /// <returns>Task{TraktResponseDataContract}.</returns> public async Task<IEnumerable<TraktSyncResponse>> SendCollectionRemovalsAsync(List<TraktMovie> movies, TraktUser traktUser, CancellationToken cancellationToken) { if (movies == null) throw new ArgumentNullException("movies"); if (traktUser == null) throw new ArgumentNullException("traktUser"); var responses = new List<TraktSyncResponse>(); var chunks = movies.ToChunks(100); foreach (var chunk in chunks) { var data = new TraktSyncUncollected { movies = chunk.ToList() }; using (var response = await PostToTrakt(TraktUris.SyncCollectionRemove, data, cancellationToken, traktUser).ConfigureAwait(false)) { responses.Add(_jsonSerializer.DeserializeFromStream<TraktSyncResponse>(response)); } } return responses; }