예제 #1
0
        private IEnumerable <ITraktUserCustomListItemsPostShowSeason> CreateUserCustomListItemsPostShowSeasons(PostSeasons seasons)
        {
            var userCustomListItemsPostShowSeasons = new List <ITraktUserCustomListItemsPostShowSeason>();

            foreach (PostSeason season in seasons)
            {
                var userCustomListItemsPostShowSeason = new TraktUserCustomListItemsPostShowSeason
                {
                    Number = season.Number
                };

                if (season.Episodes?.Count() > 0)
                {
                    var userCustomListItemsPostShowEpisodes = new List <ITraktUserCustomListItemsPostShowEpisode>();

                    foreach (PostEpisode episode in season.Episodes)
                    {
                        userCustomListItemsPostShowEpisodes.Add(new TraktUserCustomListItemsPostShowEpisode
                        {
                            Number = episode.Number
                        });
                    }

                    userCustomListItemsPostShowSeason.Episodes = userCustomListItemsPostShowEpisodes;
                }

                userCustomListItemsPostShowSeasons.Add(userCustomListItemsPostShowSeason);
            }

            return(userCustomListItemsPostShowSeasons);
        }
        public override async Task <ITraktUserCustomListItemsPostShowSeason> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default)
        {
            if (jsonReader == null)
            {
                return(await Task.FromResult(default(ITraktUserCustomListItemsPostShowSeason)));
            }

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject)
            {
                var episodeArrayJsonReader = new UserCustomListItemsPostShowEpisodeArrayJsonReader();
                ITraktUserCustomListItemsPostShowSeason customListItemsPostShowSeason = new TraktUserCustomListItemsPostShowSeason();

                while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName)
                {
                    var propertyName = jsonReader.Value.ToString();

                    switch (propertyName)
                    {
                    case JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_SHOW_SEASON_PROPERTY_NAME_NUMBER:
                    {
                        Pair <bool, int> value = await JsonReaderHelper.ReadIntegerValueAsync(jsonReader, cancellationToken);

                        if (value.First)
                        {
                            customListItemsPostShowSeason.Number = value.Second;
                        }

                        break;
                    }

                    case JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_SHOW_SEASON_PROPERTY_NAME_EPISODES:
                        customListItemsPostShowSeason.Episodes = await episodeArrayJsonReader.ReadArrayAsync(jsonReader, cancellationToken);

                        break;

                    default:
                        await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken);

                        break;
                    }
                }

                return(customListItemsPostShowSeason);
            }

            return(await Task.FromResult(default(ITraktUserCustomListItemsPostShowSeason)));
        }