private IEnumerable <ITraktSyncWatchlistPostShowSeason> CreateSyncWatchlistPostShowSeasons(PostSeasons seasons) { var syncWatchlistPostShowSeasons = new List <ITraktSyncWatchlistPostShowSeason>(); foreach (PostSeason season in seasons) { var syncWatchlistPostShowSeason = new TraktSyncWatchlistPostShowSeason { Number = season.Number }; if (season.Episodes?.Count() > 0) { var syncWatchlistPostShowEpisodes = new List <ITraktSyncWatchlistPostShowEpisode>(); foreach (PostEpisode episode in season.Episodes) { syncWatchlistPostShowEpisodes.Add(new TraktSyncWatchlistPostShowEpisode { Number = episode.Number }); } syncWatchlistPostShowSeason.Episodes = syncWatchlistPostShowEpisodes; } syncWatchlistPostShowSeasons.Add(syncWatchlistPostShowSeason); } return(syncWatchlistPostShowSeasons); }
public override async Task <ITraktSyncWatchlistPostShowSeason> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktSyncWatchlistPostShowSeason))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var episodeArrayJsonReader = new SyncWatchlistPostShowEpisodeArrayJsonReader(); ITraktSyncWatchlistPostShowSeason syncWatchlistPostShowSeason = new TraktSyncWatchlistPostShowSeason(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.SYNC_WATCHLIST_POST_SHOW_SEASON_PROPERTY_NAME_NUMBER: { Pair <bool, int> value = await JsonReaderHelper.ReadIntegerValueAsync(jsonReader, cancellationToken); if (value.First) { syncWatchlistPostShowSeason.Number = value.Second; } break; } case JsonProperties.SYNC_WATCHLIST_POST_SHOW_SEASON_PROPERTY_NAME_EPISODES: syncWatchlistPostShowSeason.Episodes = await episodeArrayJsonReader.ReadArrayAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(syncWatchlistPostShowSeason); } return(await Task.FromResult(default(ITraktSyncWatchlistPostShowSeason))); }