public async Task Test_TraktMovie_From_Minimal_Json() { var jsonReader = new MovieObjectJsonReader(); var movie = await jsonReader.ReadObjectAsync(MINIMAL_JSON) as TraktMovie; movie.Should().NotBeNull(); movie.Title.Should().Be("Star Wars: The Force Awakens"); movie.Year.Should().Be(2015); movie.Ids.Should().NotBeNull(); movie.Ids.Trakt.Should().Be(94024U); movie.Ids.Slug.Should().Be("star-wars-the-force-awakens-2015"); movie.Ids.Imdb.Should().Be("tt2488496"); movie.Ids.Tmdb.Should().Be(140607U); movie.Tagline.Should().BeNullOrEmpty(); movie.Overview.Should().BeNullOrEmpty(); movie.Released.Should().NotHaveValue(); movie.Runtime.Should().NotHaveValue(); movie.UpdatedAt.Should().NotHaveValue(); movie.Trailer.Should().BeNullOrEmpty(); movie.Homepage.Should().BeNullOrEmpty(); movie.Rating.Should().NotHaveValue(); movie.Votes.Should().NotHaveValue(); movie.LanguageCode.Should().BeNullOrEmpty(); movie.AvailableTranslationLanguageCodes.Should().BeNull(); movie.Genres.Should().BeNull(); movie.Certification.Should().BeNullOrEmpty(); movie.CountryCode.Should().BeNullOrEmpty(); }
public async Task Test_TraktMovie_From_Full_Json() { var jsonReader = new MovieObjectJsonReader(); var movie = await jsonReader.ReadObjectAsync(FULL_JSON) as TraktMovie; movie.Should().NotBeNull(); movie.Title.Should().Be("Star Wars: The Force Awakens"); movie.Year.Should().Be(2015); movie.Ids.Should().NotBeNull(); movie.Ids.Trakt.Should().Be(94024U); movie.Ids.Slug.Should().Be("star-wars-the-force-awakens-2015"); movie.Ids.Imdb.Should().Be("tt2488496"); movie.Ids.Tmdb.Should().Be(140607U); movie.Tagline.Should().Be("Every generation has a story."); movie.Overview.Should().Be("Thirty years after defeating the Galactic Empire, Han Solo and his allies face a new threat from the evil Kylo Ren and his army of Stormtroopers."); movie.Released.Should().Be(DateTime.Parse("2015-12-18")); movie.Runtime.Should().Be(136); movie.UpdatedAt.Should().Be(DateTime.Parse("2016-03-31T09:01:59Z").ToUniversalTime()); movie.Trailer.Should().Be("http://youtube.com/watch?v=uwa7N0ShN2U"); movie.Homepage.Should().Be("http://www.starwars.com/films/star-wars-episode-vii"); movie.Rating.Should().Be(8.31988f); movie.Votes.Should().Be(9338); movie.LanguageCode.Should().Be("en"); movie.AvailableTranslationLanguageCodes.Should().NotBeNull().And.HaveCount(4).And.Contain("en", "de", "en", "it"); movie.Genres.Should().NotBeNull().And.HaveCount(4).And.Contain("action", "adventure", "fantasy", "science-fiction"); movie.Certification.Should().Be("PG-13"); movie.CountryCode.Should().Be("us"); }
public override async Task <ITraktMovieCommentPost> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktMovieCommentPost))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var sharingReader = new SharingObjectJsonReader(); var movieReader = new MovieObjectJsonReader(); ITraktMovieCommentPost movieCommentPost = new TraktMovieCommentPost(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.COMMENT_POST_PROPERTY_NAME_COMMENT: movieCommentPost.Comment = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.COMMENT_POST_PROPERTY_NAME_SPOILER: { bool?value = await jsonReader.ReadAsBooleanAsync(cancellationToken); if (value.HasValue) { movieCommentPost.Spoiler = value.Value; } break; } case JsonProperties.COMMENT_POST_PROPERTY_NAME_SHARING: movieCommentPost.Sharing = await sharingReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.MOVIE_COMMENT_POST_PROPERTY_NAME_MOVIE: movieCommentPost.Movie = await movieReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(movieCommentPost); } return(await Task.FromResult(default(ITraktMovieCommentPost))); }
public override async Task <ITraktMovieScrobblePost> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktMovieScrobblePost))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieReader = new MovieObjectJsonReader(); ITraktMovieScrobblePost movieScrobblePost = new TraktMovieScrobblePost(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.SCROBBLE_POST_PROPERTY_NAME_PROGRESS: { Pair <bool, float> value = await JsonReaderHelper.ReadFloatValueAsync(jsonReader, cancellationToken); if (value.First) { movieScrobblePost.Progress = value.Second; } break; } case JsonProperties.SCROBBLE_POST_PROPERTY_NAME_APP_VERSION: movieScrobblePost.AppVersion = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.SCROBBLE_POST_PROPERTY_NAME_APP_DATE: movieScrobblePost.AppDate = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.MOVIE_SCROBBLE_POST_PROPERTY_NAME_MOVIE: movieScrobblePost.Movie = await movieReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(movieScrobblePost); } return(await Task.FromResult(default(ITraktMovieScrobblePost))); }
public override async Task <ITraktCollectionMovie> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktCollectionMovie))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieObjectReader = new MovieObjectJsonReader(); var metadataObjectReader = new MetadataObjectJsonReader(); ITraktCollectionMovie traktCollectionMovie = new TraktCollectionMovie(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.COLLECTION_MOVIE_PROPERTY_NAME_COLLECTED_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { traktCollectionMovie.CollectedAt = value.Second; } break; } case JsonProperties.COLLECTION_MOVIE_PROPERTY_NAME_MOVIE: traktCollectionMovie.Movie = await movieObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.COLLECTION_MOVIE_PROPERTY_NAME_METADATA: traktCollectionMovie.Metadata = await metadataObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktCollectionMovie); } return(await Task.FromResult(default(ITraktCollectionMovie))); }
public override async Task <ITraktWatchedMovie> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktWatchedMovie))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieObjectReader = new MovieObjectJsonReader(); ITraktWatchedMovie traktWatchedMovie = new TraktWatchedMovie(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.WATCHED_MOVIE_PROPERTY_NAME_PLAYS: traktWatchedMovie.Plays = await jsonReader.ReadAsInt32Async(cancellationToken); break; case JsonProperties.WATCHED_MOVIE_PROPERTY_NAME_LAST_WATCHED_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { traktWatchedMovie.LastWatchedAt = value.Second; } break; } case JsonProperties.WATCHED_MOVIE_PROPERTY_NAME_MOVIE: traktWatchedMovie.Movie = await movieObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktWatchedMovie); } return(await Task.FromResult(default(ITraktWatchedMovie))); }
public override async Task <ITraktCalendarMovie> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { CheckJsonTextReader(jsonReader); if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieObjectReader = new MovieObjectJsonReader(); ITraktCalendarMovie traktCalendarMovie = new TraktCalendarMovie(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.PROPERTY_NAME_RELEASED: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { traktCalendarMovie.CalendarRelease = value.Second; } break; } case JsonProperties.PROPERTY_NAME_MOVIE: traktCalendarMovie.Movie = await movieObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktCalendarMovie); } return(await Task.FromResult(default(ITraktCalendarMovie))); }
public override async Task <ITraktPersonMovieCreditsCastItem> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktPersonMovieCreditsCastItem))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieObjectReader = new MovieObjectJsonReader(); ITraktPersonMovieCreditsCastItem movieCreditsCastItem = new TraktPersonMovieCreditsCastItem(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.PERSON_MOVIE_CREDITS_CAST_ITEM_PROPERTY_NAME_CHARACTER: movieCreditsCastItem.Character = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.PERSON_MOVIE_CREDITS_CAST_ITEM_PROPERTY_NAME_MOVIE: movieCreditsCastItem.Movie = await movieObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(movieCreditsCastItem); } return(await Task.FromResult(default(ITraktPersonMovieCreditsCastItem))); }
public override async Task <ITraktPersonMovieCreditsCrewItem> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { CheckJsonTextReader(jsonReader); if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieObjectReader = new MovieObjectJsonReader(); ITraktPersonMovieCreditsCrewItem movieCreditsCrewItem = new TraktPersonMovieCreditsCrewItem(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.PROPERTY_NAME_JOBS: movieCreditsCrewItem.Jobs = await JsonReaderHelper.ReadStringArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_MOVIE: movieCreditsCrewItem.Movie = await movieObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(movieCreditsCrewItem); } return(await Task.FromResult(default(ITraktPersonMovieCreditsCrewItem))); }
public override async Task <ITraktSearchResult> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { CheckJsonTextReader(jsonReader); if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieObjectReader = new MovieObjectJsonReader(); var showObjectReader = new ShowObjectJsonReader(); var episodeObjectReader = new EpisodeObjectJsonReader(); var personObjectReader = new PersonObjectJsonReader(); var listObjectReader = new ListObjectJsonReader(); ITraktSearchResult traktSearchResult = new TraktSearchResult(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.PROPERTY_NAME_TYPE: traktSearchResult.Type = await JsonReaderHelper.ReadEnumerationValueAsync <TraktSearchResultType>(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_SCORE: { var value = await JsonReaderHelper.ReadFloatValueAsync(jsonReader, cancellationToken); if (value.First) { traktSearchResult.Score = value.Second; } break; } case JsonProperties.PROPERTY_NAME_MOVIE: traktSearchResult.Movie = await movieObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_SHOW: traktSearchResult.Show = await showObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_EPISODE: traktSearchResult.Episode = await episodeObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_PERSON: traktSearchResult.Person = await personObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_LIST: traktSearchResult.List = await listObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktSearchResult); } return(await Task.FromResult(default(ITraktSearchResult))); }
public override async Task <ITraktMovieCheckinPost> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktMovieCheckinPost))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var sharingReader = new SharingObjectJsonReader(); var movieReader = new MovieObjectJsonReader(); ITraktMovieCheckinPost movieCheckinPost = new TraktMovieCheckinPost(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.CHECKIN_POST_PROPERTY_NAME_SHARING: movieCheckinPost.Sharing = await sharingReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.CHECKIN_POST_PROPERTY_NAME_MESSAGE: movieCheckinPost.Message = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.CHECKIN_POST_PROPERTY_NAME_APP_VERSION: movieCheckinPost.AppVersion = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.CHECKIN_POST_PROPERTY_NAME_APP_DATE: movieCheckinPost.AppDate = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.CHECKIN_POST_PROPERTY_NAME_VENUE_ID: movieCheckinPost.FoursquareVenueId = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.CHECKIN_POST_PROPERTY_NAME_VENUE_NAME: movieCheckinPost.FoursquareVenueName = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.MOVIE_CHECKIN_POST_PROPERTY_NAME_MOVIE: movieCheckinPost.Movie = await movieReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(movieCheckinPost); } return(await Task.FromResult(default(ITraktMovieCheckinPost))); }
public override async Task <ITraktUserWatchingItem> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktUserWatchingItem))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieReader = new MovieObjectJsonReader(); var showReader = new ShowObjectJsonReader(); var episodeReader = new EpisodeObjectJsonReader(); ITraktUserWatchingItem traktUserWatchingItem = new TraktUserWatchingItem(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.USER_WATCHING_ITEM_PROPERTY_NAME_STARTED_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { traktUserWatchingItem.StartedAt = value.Second; } break; } case JsonProperties.USER_WATCHING_ITEM_PROPERTY_NAME_EXPIRES_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { traktUserWatchingItem.ExpiresAt = value.Second; } break; } case JsonProperties.USER_WATCHING_ITEM_PROPERTY_NAME_ACTION: traktUserWatchingItem.Action = await JsonReaderHelper.ReadEnumerationValueAsync <TraktHistoryActionType>(jsonReader, cancellationToken); break; case JsonProperties.USER_WATCHING_ITEM_PROPERTY_NAME_TYPE: traktUserWatchingItem.Type = await JsonReaderHelper.ReadEnumerationValueAsync <TraktSyncType>(jsonReader, cancellationToken); break; case JsonProperties.USER_WATCHING_ITEM_PROPERTY_NAME_MOVIE: traktUserWatchingItem.Movie = await movieReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.USER_WATCHING_ITEM_PROPERTY_NAME_SHOW: traktUserWatchingItem.Show = await showReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.USER_WATCHING_ITEM_PROPERTY_NAME_EPISODE: traktUserWatchingItem.Episode = await episodeReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktUserWatchingItem); } return(await Task.FromResult(default(ITraktUserWatchingItem))); }
public override async Task <ITraktSyncPlaybackProgressItem> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { CheckJsonTextReader(jsonReader); if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieObjectReader = new MovieObjectJsonReader(); var showObjectReader = new ShowObjectJsonReader(); var episodeObjectReader = new EpisodeObjectJsonReader(); ITraktSyncPlaybackProgressItem traktPlaybackProgressItem = new TraktSyncPlaybackProgressItem(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.PROPERTY_NAME_ID: { var value = await JsonReaderHelper.ReadUnsignedIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { traktPlaybackProgressItem.Id = value.Second; } break; } case JsonProperties.PROPERTY_NAME_PROGRESS: { var value = await JsonReaderHelper.ReadFloatValueAsync(jsonReader, cancellationToken); if (value.First) { traktPlaybackProgressItem.Progress = value.Second; } break; } case JsonProperties.PROPERTY_NAME_PAUSED_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { traktPlaybackProgressItem.PausedAt = value.Second; } break; } case JsonProperties.PROPERTY_NAME_TYPE: traktPlaybackProgressItem.Type = await JsonReaderHelper.ReadEnumerationValueAsync <TraktSyncType>(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_MOVIE: traktPlaybackProgressItem.Movie = await movieObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_SHOW: traktPlaybackProgressItem.Show = await showObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_EPISODE: traktPlaybackProgressItem.Episode = await episodeObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktPlaybackProgressItem); } return(await Task.FromResult(default(ITraktSyncPlaybackProgressItem))); }
public override async Task <ITraktRatingsItem> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { CheckJsonTextReader(jsonReader); if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieObjectReader = new MovieObjectJsonReader(); var showObjectReader = new ShowObjectJsonReader(); var seasonObjectReader = new SeasonObjectJsonReader(); var episodeObjectReader = new EpisodeObjectJsonReader(); ITraktRatingsItem traktRatingItem = new TraktRatingsItem(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.PROPERTY_NAME_RATED_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { traktRatingItem.RatedAt = value.Second; } break; } case JsonProperties.PROPERTY_NAME_RATING: traktRatingItem.Rating = await jsonReader.ReadAsInt32Async(cancellationToken); break; case JsonProperties.PROPERTY_NAME_TYPE: traktRatingItem.Type = await JsonReaderHelper.ReadEnumerationValueAsync <TraktRatingsItemType>(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_MOVIE: traktRatingItem.Movie = await movieObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_SHOW: traktRatingItem.Show = await showObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_SEASON: traktRatingItem.Season = await seasonObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_EPISODE: traktRatingItem.Episode = await episodeObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktRatingItem); } return(await Task.FromResult(default(ITraktRatingsItem))); }
public override async Task <ITraktCommentItem> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { CheckJsonTextReader(jsonReader); if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { ITraktCommentItem traktCommentItem = new TraktCommentItem(); var movieObjectJsonReader = new MovieObjectJsonReader(); var showObjectJsonReader = new ShowObjectJsonReader(); var seasonObjectJsonReader = new SeasonObjectJsonReader(); var episodeObjectJsonReader = new EpisodeObjectJsonReader(); var listObjectJsonReader = new ListObjectJsonReader(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.PROPERTY_NAME_TYPE: traktCommentItem.Type = await JsonReaderHelper.ReadEnumerationValueAsync <TraktObjectType>(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_MOVIE: traktCommentItem.Movie = await movieObjectJsonReader.ReadObjectAsync(jsonReader, cancellationToken).ConfigureAwait(false); break; case JsonProperties.PROPERTY_NAME_SHOW: traktCommentItem.Show = await showObjectJsonReader.ReadObjectAsync(jsonReader, cancellationToken).ConfigureAwait(false); break; case JsonProperties.PROPERTY_NAME_SEASON: traktCommentItem.Season = await seasonObjectJsonReader.ReadObjectAsync(jsonReader, cancellationToken).ConfigureAwait(false); break; case JsonProperties.PROPERTY_NAME_EPISODE: traktCommentItem.Episode = await episodeObjectJsonReader.ReadObjectAsync(jsonReader, cancellationToken).ConfigureAwait(false); break; case JsonProperties.PROPERTY_NAME_LIST: traktCommentItem.List = await listObjectJsonReader.ReadObjectAsync(jsonReader, cancellationToken).ConfigureAwait(false); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktCommentItem); } return(await Task.FromResult(default(ITraktCommentItem))); }
public override async Task <ITraktMovieScrobblePostResponse> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktMovieScrobblePostResponse))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var sharingReader = new SharingObjectJsonReader(); var movieReader = new MovieObjectJsonReader(); ITraktMovieScrobblePostResponse movieScrobbleResponse = new TraktMovieScrobblePostResponse(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.SCROBBLE_POST_RESPONSE_PROPERTY_NAME_ID: { var value = await JsonReaderHelper.ReadUnsignedLongIntegerAsync(jsonReader, cancellationToken); if (value.First) { movieScrobbleResponse.Id = value.Second; } break; } case JsonProperties.SCROBBLE_POST_RESPONSE_PROPERTY_NAME_ACTION: movieScrobbleResponse.Action = await JsonReaderHelper.ReadEnumerationValueAsync <TraktScrobbleActionType>(jsonReader, cancellationToken); break; case JsonProperties.SCROBBLE_POST_RESPONSE_PROPERTY_NAME_PROGRESS: { var value = await JsonReaderHelper.ReadFloatValueAsync(jsonReader, cancellationToken); if (value.First) { movieScrobbleResponse.Progress = value.Second; } break; } case JsonProperties.SCROBBLE_POST_RESPONSE_PROPERTY_NAME_SHARING: movieScrobbleResponse.Sharing = await sharingReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.MOVIE_SCROBBLE_POST_RESPONSE_PROPERTY_NAME_MOVIE: movieScrobbleResponse.Movie = await movieReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(movieScrobbleResponse); } return(await Task.FromResult(default(ITraktMovieScrobblePostResponse))); }
public override async Task <ITraktMovieCheckinPostResponse> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktMovieCheckinPostResponse))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var sharingReader = new SharingObjectJsonReader(); var movieReader = new MovieObjectJsonReader(); ITraktMovieCheckinPostResponse checkinMovieResponse = new TraktMovieCheckinPostResponse(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.CHECKIN_POST_RESPONSE_PROPERTY_NAME_ID: { var value = await JsonReaderHelper.ReadUnsignedLongIntegerAsync(jsonReader, cancellationToken); if (value.First) { checkinMovieResponse.Id = value.Second; } break; } case JsonProperties.CHECKIN_POST_RESPONSE_PROPERTY_NAME_WATCHED_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { checkinMovieResponse.WatchedAt = value.Second; } break; } case JsonProperties.CHECKIN_POST_RESPONSE_PROPERTY_NAME_SHARING: checkinMovieResponse.Sharing = await sharingReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.MOVIE_CHECKIN_POST_RESPONSE_PROPERTY_NAME_MOVIE: checkinMovieResponse.Movie = await movieReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(checkinMovieResponse); } return(await Task.FromResult(default(ITraktMovieCheckinPostResponse))); }
public override async Task <ITraktUserComment> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktUserComment))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var commentReader = new CommentObjectJsonReader(); var movieReader = new MovieObjectJsonReader(); var showReader = new ShowObjectJsonReader(); var seasonReader = new SeasonObjectJsonReader(); var episodeReader = new EpisodeObjectJsonReader(); var listReader = new ListObjectJsonReader(); ITraktUserComment traktUserComment = new TraktUserComment(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.USER_COMMENT_PROPERTY_NAME_TYPE: traktUserComment.Type = await JsonReaderHelper.ReadEnumerationValueAsync <TraktObjectType>(jsonReader, cancellationToken); break; case JsonProperties.USER_COMMENT_PROPERTY_NAME_COMMENT: traktUserComment.Comment = await commentReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.USER_COMMENT_PROPERTY_NAME_MOVIE: traktUserComment.Movie = await movieReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.USER_COMMENT_PROPERTY_NAME_SHOW: traktUserComment.Show = await showReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.USER_COMMENT_PROPERTY_NAME_SEASON: traktUserComment.Season = await seasonReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.USER_COMMENT_PROPERTY_NAME_EPISODE: traktUserComment.Episode = await episodeReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.USER_COMMENT_PROPERTY_NAME_LIST: traktUserComment.List = await listReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktUserComment); } return(await Task.FromResult(default(ITraktUserComment))); }
public override async Task <ITraktRecommendation> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { CheckJsonTextReader(jsonReader); if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieObjectReader = new MovieObjectJsonReader(); var showObjectReader = new ShowObjectJsonReader(); ITraktRecommendation traktRecommendation = new TraktRecommendation(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.PROPERTY_NAME_RANK: traktRecommendation.Rank = await jsonReader.ReadAsInt32Async(cancellationToken).ConfigureAwait(false); break; case JsonProperties.PROPERTY_NAME_LISTED_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken).ConfigureAwait(false); if (value.First) { traktRecommendation.ListedAt = value.Second; } break; } case JsonProperties.PROPERTY_NAME_TYPE: traktRecommendation.Type = await JsonReaderHelper.ReadEnumerationValueAsync <TraktRecommendationObjectType>(jsonReader, cancellationToken).ConfigureAwait(false); break; case JsonProperties.PROPERTY_NAME_NOTES: traktRecommendation.Notes = await jsonReader.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); break; case JsonProperties.PROPERTY_NAME_MOVIE: traktRecommendation.Movie = await movieObjectReader.ReadObjectAsync(jsonReader, cancellationToken).ConfigureAwait(false); break; case JsonProperties.PROPERTY_NAME_SHOW: traktRecommendation.Show = await showObjectReader.ReadObjectAsync(jsonReader, cancellationToken).ConfigureAwait(false); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken).ConfigureAwait(false); break; } } return(traktRecommendation); } return(await Task.FromResult(default(ITraktRecommendation))); }
public override async Task <ITraktUserHiddenItem> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktUserHiddenItem))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieReader = new MovieObjectJsonReader(); var showReader = new ShowObjectJsonReader(); var seasonReader = new SeasonObjectJsonReader(); ITraktUserHiddenItem traktUserHiddenItem = new TraktUserHiddenItem(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.USER_HIDDEN_ITEM_PROPERTY_NAME_HIDDEN_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { traktUserHiddenItem.HiddenAt = value.Second; } break; } case JsonProperties.USER_HIDDEN_ITEM_PROPERTY_NAME_TYPE: traktUserHiddenItem.Type = await JsonReaderHelper.ReadEnumerationValueAsync <TraktHiddenItemType>(jsonReader, cancellationToken); break; case JsonProperties.USER_HIDDEN_ITEM_PROPERTY_NAME_MOVIE: traktUserHiddenItem.Movie = await movieReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.USER_HIDDEN_ITEM_PROPERTY_NAME_SHOW: traktUserHiddenItem.Show = await showReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.USER_HIDDEN_ITEM_PROPERTY_NAME_SEASON: traktUserHiddenItem.Season = await seasonReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktUserHiddenItem); } return(await Task.FromResult(default(ITraktUserHiddenItem))); }