Exemple #1
0
        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;
        }
Exemple #2
0
        /// <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;
        }