public override async Task <ITraktPersonMovieCredits> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktPersonMovieCredits))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieCreditsCastReader = new PersonMovieCreditsCastItemArrayJsonReader(); var movieCreditsCrewReader = new PersonMovieCreditsCrewObjectJsonReader(); ITraktPersonMovieCredits movieCredits = new TraktPersonMovieCredits(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.PERSON_MOVIE_CREDITS_PROPERTY_NAME_CAST: movieCredits.Cast = await movieCreditsCastReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.PERSON_MOVIE_CREDITS_PROPERTY_NAME_CREW: movieCredits.Crew = await movieCreditsCrewReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(movieCredits); } return(await Task.FromResult(default(ITraktPersonMovieCredits))); }
public override async Task <IEnumerable <ITraktPersonMovieCreditsCrew> > ReadArrayAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(IEnumerable <ITraktPersonMovieCreditsCrew>))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartArray) { var personMovieCreditsCrewReader = new PersonMovieCreditsCrewObjectJsonReader(); var personMovieCreditsCrews = new List <ITraktPersonMovieCreditsCrew>(); ITraktPersonMovieCreditsCrew personMovieCreditsCrew = await personMovieCreditsCrewReader.ReadObjectAsync(jsonReader, cancellationToken); while (personMovieCreditsCrew != null) { personMovieCreditsCrews.Add(personMovieCreditsCrew); personMovieCreditsCrew = await personMovieCreditsCrewReader.ReadObjectAsync(jsonReader, cancellationToken); } return(personMovieCreditsCrews); } return(await Task.FromResult(default(IEnumerable <ITraktPersonMovieCreditsCrew>))); }