public override async Task <ITraktMovieIds> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { CheckJsonTextReader(jsonReader); if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { ITraktMovieIds traktMovieIds = new TraktMovieIds(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.PROPERTY_NAME_TRAKT: { var value = await JsonReaderHelper.ReadUnsignedIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { traktMovieIds.Trakt = value.Second; } break; } case JsonProperties.PROPERTY_NAME_SLUG: traktMovieIds.Slug = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.PROPERTY_NAME_IMDB: traktMovieIds.Imdb = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.PROPERTY_NAME_TMDB: { var value = await JsonReaderHelper.ReadUnsignedIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { traktMovieIds.Tmdb = value.Second; } break; } default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktMovieIds); } return(await Task.FromResult(default(ITraktMovieIds))); }
public override async Task <ITraktUserFollowRequest> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktUserFollowRequest))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var userReader = new UserObjectJsonReader(); ITraktUserFollowRequest traktUserFollowRequest = new TraktUserFollowRequest(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.USER_FOLLOW_REQUEST_PROPERTY_NAME_ID: { var value = await JsonReaderHelper.ReadUnsignedIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { traktUserFollowRequest.Id = value.Second; } break; } case JsonProperties.USER_FOLLOW_REQUEST_PROPERTY_NAME_REQUESTED_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { traktUserFollowRequest.RequestedAt = value.Second; } break; } case JsonProperties.USER_FOLLOW_REQUEST_PROPERTY_NAME_USER: traktUserFollowRequest.User = await userReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktUserFollowRequest); } return(await Task.FromResult(default(ITraktUserFollowRequest))); }
public override async Task<ITraktComment> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { CheckJsonTextReader(jsonReader); if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var userReader = new UserObjectJsonReader(); ITraktComment traktComment = new TraktComment(); 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) traktComment.Id = value.Second; break; } case JsonProperties.PROPERTY_NAME_PARENT_ID: { var value = await JsonReaderHelper.ReadUnsignedIntegerValueAsync(jsonReader, cancellationToken); if (value.First) traktComment.ParentId = value.Second; break; } case JsonProperties.PROPERTY_NAME_CREATED_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) traktComment.CreatedAt = value.Second; break; } case JsonProperties.PROPERTY_NAME_UPDATED_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) traktComment.UpdatedAt = value.Second; break; } case JsonProperties.PROPERTY_NAME_COMMENT: traktComment.Comment = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.PROPERTY_NAME_SPOILER: traktComment.Spoiler = (bool)await jsonReader.ReadAsBooleanAsync(cancellationToken); break; case JsonProperties.PROPERTY_NAME_REVIEW: traktComment.Review = (bool)await jsonReader.ReadAsBooleanAsync(cancellationToken); break; case JsonProperties.PROPERTY_NAME_REPLIES: traktComment.Replies = await jsonReader.ReadAsInt32Async(cancellationToken); break; case JsonProperties.PROPERTY_NAME_LIKES: traktComment.Likes = await jsonReader.ReadAsInt32Async(cancellationToken); break; case JsonProperties.PROPERTY_NAME_USER_RATING: { var value = await JsonReaderHelper.ReadFloatValueAsync(jsonReader, cancellationToken); if (value.First) traktComment.UserRating = value.Second; break; } case JsonProperties.PROPERTY_NAME_USER: traktComment.User = await userReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return traktComment; } return await Task.FromResult(default(ITraktComment)); }
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<ITraktListItem> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { CheckJsonTextReader(jsonReader); if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieReader = new MovieObjectJsonReader(); var showReader = new ShowObjectJsonReader(); var seasonReader = new SeasonObjectJsonReader(); var episodeReader = new EpisodeObjectJsonReader(); var personReader = new PersonObjectJsonReader(); ITraktListItem traktListItem = new TraktListItem(); 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) traktListItem.Id = value.Second; break; } case JsonProperties.PROPERTY_NAME_RANK: traktListItem.Rank = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.PROPERTY_NAME_LISTED_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) traktListItem.ListedAt = value.Second; break; } case JsonProperties.PROPERTY_NAME_TYPE: traktListItem.Type = await JsonReaderHelper.ReadEnumerationValueAsync<TraktListItemType>(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_MOVIE: traktListItem.Movie = await movieReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_SHOW: traktListItem.Show = await showReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_SEASON: traktListItem.Season = await seasonReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_EPISODE: traktListItem.Episode = await episodeReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_PERSON: traktListItem.Person = await personReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return traktListItem; } return await Task.FromResult(default(ITraktListItem)); }
public override async Task <ITraktAuthorization> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktAuthorization))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { ITraktAuthorization traktAuthorization = new TraktAuthorization(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.PROPERTY_NAME_ACCESS_TOKEN: traktAuthorization.AccessToken = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.PROPERTY_NAME_REFRESH_TOKEN: traktAuthorization.RefreshToken = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.PROPERTY_NAME_SCOPE: traktAuthorization.Scope = await JsonReaderHelper.ReadEnumerationValueAsync <TraktAccessScope>(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_EXPIRES_IN: { var value = await JsonReaderHelper.ReadUnsignedIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { traktAuthorization.ExpiresInSeconds = value.Second; } break; } case JsonProperties.PROPERTY_NAME_TOKEN_TYPE: traktAuthorization.TokenType = await JsonReaderHelper.ReadEnumerationValueAsync <TraktAccessTokenType>(jsonReader, cancellationToken); break; case JsonProperties.PROPERTY_NAME_CREATED_AT: { var value = await JsonReaderHelper.ReadUnsignedLongValueAsync(jsonReader, cancellationToken); if (value.First) { traktAuthorization.CreatedAtTimestamp = value.Second; } break; } case JsonProperties.PROPERTY_NAME_IGNORE_EXPIRATION: if (CompleteDeserialization) { bool?ignoreExpiration = await jsonReader.ReadAsBooleanAsync(cancellationToken); traktAuthorization.IgnoreExpiration = ignoreExpiration ?? false; } break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktAuthorization); } return(await Task.FromResult(default(ITraktAuthorization))); }
public override async Task <ITraktSeasonIds> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktSeasonIds))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { ITraktSeasonIds traktSeasonIds = new TraktSeasonIds(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.SEASON_IDS_PROPERTY_NAME_TRAKT: { var value = await JsonReaderHelper.ReadUnsignedIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { traktSeasonIds.Trakt = value.Second; } break; } case JsonProperties.SEASON_IDS_PROPERTY_NAME_TVDB: { var value = await JsonReaderHelper.ReadUnsignedIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { traktSeasonIds.Tvdb = value.Second; } break; } case JsonProperties.SEASON_IDS_PROPERTY_NAME_TMDB: { var value = await JsonReaderHelper.ReadUnsignedIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { traktSeasonIds.Tmdb = value.Second; } break; } case JsonProperties.SEASON_IDS_PROPERTY_NAME_TVRAGE: { var value = await JsonReaderHelper.ReadUnsignedIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { traktSeasonIds.TvRage = value.Second; } break; } default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktSeasonIds); } return(await Task.FromResult(default(ITraktSeasonIds))); }
public override async Task <ITraktDevice> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktDevice))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { ITraktDevice traktAuthorization = new TraktDevice(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.DEVICE_PROPERTY_NAME_DEVICE_CODE: traktAuthorization.DeviceCode = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.DEVICE_PROPERTY_NAME_USER_CODE: traktAuthorization.UserCode = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.DEVICE_PROPERTY_NAME_VERIFICATION_URL: traktAuthorization.VerificationUrl = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.DEVICE_PROPERTY_NAME_EXPIRES_IN: { var value = await JsonReaderHelper.ReadUnsignedIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { traktAuthorization.ExpiresInSeconds = value.Second; } break; } case JsonProperties.DEVICE_PROPERTY_NAME_INTERVAL: { var value = await JsonReaderHelper.ReadUnsignedIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { traktAuthorization.IntervalInSeconds = value.Second; } break; } default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktAuthorization); } return(await Task.FromResult(default(ITraktDevice))); }