public override async Task <ITraktSyncRatingsPostEpisode> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktSyncRatingsPostEpisode))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var episodeIdsObjectJsonReader = new EpisodeIdsObjectJsonReader(); ITraktSyncRatingsPostEpisode syncRatingsPostEpisode = new TraktSyncRatingsPostEpisode(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.SYNC_RATINGS_POST_EPISODE_PROPERTY_NAME_RATED_AT: { Pair <bool, DateTime> value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { syncRatingsPostEpisode.RatedAt = value.Second; } break; } case JsonProperties.SYNC_RATINGS_POST_EPISODE_PROPERTY_NAME_RATING: syncRatingsPostEpisode.Rating = await jsonReader.ReadAsInt32Async(cancellationToken); break; case JsonProperties.SYNC_RATINGS_POST_EPISODE_PROPERTY_NAME_IDS: syncRatingsPostEpisode.Ids = await episodeIdsObjectJsonReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(syncRatingsPostEpisode); } return(await Task.FromResult(default(ITraktSyncRatingsPostEpisode))); }
private ITraktSyncRatingsPostEpisode CreateSyncRatingsPostEpisode(ITraktEpisode episode, int?rating = null, DateTime?ratedAt = null) { var syncRatingsPostEpisode = new TraktSyncRatingsPostEpisode { Ids = episode.Ids }; if (rating.HasValue) { syncRatingsPostEpisode.Rating = rating.Value; } if (ratedAt.HasValue) { syncRatingsPostEpisode.RatedAt = ratedAt.Value.ToUniversalTime(); } return(syncRatingsPostEpisode); }