public override async Task <ITraktSyncRatingsPostShowEpisode> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktSyncRatingsPostShowEpisode))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { ITraktSyncRatingsPostShowEpisode syncRatingsPostShowEpisode = new TraktSyncRatingsPostShowEpisode(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.SYNC_RATINGS_POST_SHOW_EPISODE_PROPERTY_NAME_RATED_AT: { Pair <bool, DateTime> value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { syncRatingsPostShowEpisode.RatedAt = value.Second; } break; } case JsonProperties.SYNC_RATINGS_POST_SHOW_EPISODE_PROPERTY_NAME_RATING: syncRatingsPostShowEpisode.Rating = await jsonReader.ReadAsInt32Async(cancellationToken); break; case JsonProperties.SYNC_RATINGS_POST_SHOW_EPISODE_PROPERTY_NAME_NUMBER: { Pair <bool, int> value = await JsonReaderHelper.ReadIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { syncRatingsPostShowEpisode.Number = value.Second; } break; } default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(syncRatingsPostShowEpisode); } return(await Task.FromResult(default(ITraktSyncRatingsPostShowEpisode))); }
private IEnumerable <ITraktSyncRatingsPostShowSeason> CreateSyncRatingsPostShowSeasons(PostRatingsSeasons seasons) { var syncRatingsPostShowSeasons = new List <ITraktSyncRatingsPostShowSeason>(); foreach (PostRatingsSeason season in seasons) { var syncRatingsPostShowSeason = new TraktSyncRatingsPostShowSeason { Number = season.Number }; if (season.Rating.HasValue) { syncRatingsPostShowSeason.Rating = season.Rating.Value; } if (season.RatedAt.HasValue) { syncRatingsPostShowSeason.RatedAt = season.RatedAt.Value.ToUniversalTime(); } if (season.Episodes?.Count() > 0) { var syncRatingsPostShowEpisodes = new List <ITraktSyncRatingsPostShowEpisode>(); foreach (PostRatingsEpisode episode in season.Episodes) { var syncRatingsPostShowEpisode = new TraktSyncRatingsPostShowEpisode { Number = episode.Number }; if (episode.Rating.HasValue) { syncRatingsPostShowEpisode.Rating = episode.Rating.Value; } if (episode.RatedAt.HasValue) { syncRatingsPostShowEpisode.RatedAt = episode.RatedAt.Value.ToUniversalTime(); } syncRatingsPostShowEpisodes.Add(syncRatingsPostShowEpisode); } syncRatingsPostShowSeason.Episodes = syncRatingsPostShowEpisodes; } syncRatingsPostShowSeasons.Add(syncRatingsPostShowSeason); } return(syncRatingsPostShowSeasons); }