public override async Task <ITraktSyncHistoryPostShowEpisode> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktSyncHistoryPostShowEpisode))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { ITraktSyncHistoryPostShowEpisode syncHistoryPostShowEpisode = new TraktSyncHistoryPostShowEpisode(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.SYNC_HISTORY_POST_SHOW_EPISODE_PROPERTY_NAME_WATCHED_AT: { Pair <bool, DateTime> value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { syncHistoryPostShowEpisode.WatchedAt = value.Second; } break; } case JsonProperties.SYNC_HISTORY_POST_SHOW_EPISODE_PROPERTY_NAME_NUMBER: { Pair <bool, int> value = await JsonReaderHelper.ReadIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { syncHistoryPostShowEpisode.Number = value.Second; } break; } default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(syncHistoryPostShowEpisode); } return(await Task.FromResult(default(ITraktSyncHistoryPostShowEpisode))); }
private IEnumerable <ITraktSyncHistoryPostShowSeason> CreateSyncHistoryPostShowSeasons(PostHistorySeasons seasons) { var syncHistoryPostShowSeasons = new List <ITraktSyncHistoryPostShowSeason>(); foreach (PostHistorySeason season in seasons) { var syncHistoryPostShowSeason = new TraktSyncHistoryPostShowSeason { Number = season.Number }; if (season.WatchedAt.HasValue) { syncHistoryPostShowSeason.WatchedAt = season.WatchedAt.Value.ToUniversalTime(); } if (season.Episodes?.Count() > 0) { var syncHistoryPostShowEpisodes = new List <ITraktSyncHistoryPostShowEpisode>(); foreach (PostHistoryEpisode episode in season.Episodes) { var syncHistoryPostShowEpisode = new TraktSyncHistoryPostShowEpisode { Number = episode.Number }; if (episode.WatchedAt.HasValue) { syncHistoryPostShowEpisode.WatchedAt = episode.WatchedAt.Value.ToUniversalTime(); } syncHistoryPostShowEpisodes.Add(syncHistoryPostShowEpisode); } syncHistoryPostShowSeason.Episodes = syncHistoryPostShowEpisodes; } syncHistoryPostShowSeasons.Add(syncHistoryPostShowSeason); } return(syncHistoryPostShowSeasons); }