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

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartArray)
            {
                var movieReader = new ShowObjectJsonReader();
                //var traktShowReadingTasks = new List<Task<ITraktShow>>();
                var traktShows = new List <ITraktShow>();

                //traktShowReadingTasks.Add(movieReader.ReadObjectAsync(jsonReader, cancellationToken));
                ITraktShow traktShow = await movieReader.ReadObjectAsync(jsonReader, cancellationToken);

                while (traktShow != null)
                {
                    traktShows.Add(traktShow);
                    //traktShowReadingTasks.Add(movieReader.ReadObjectAsync(jsonReader, cancellationToken));
                    traktShow = await movieReader.ReadObjectAsync(jsonReader, cancellationToken);
                }

                //var readShows = await Task.WhenAll(traktShowReadingTasks);
                //return (IEnumerable<ITraktShow>)readShows.GetEnumerator();
                return(traktShows);
            }

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

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject)
            {
                var showObjectReader = new ShowObjectJsonReader();
                ITraktMostPWCShow traktMostPWCShow = new TraktMostPWCShow();

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

                    switch (propertyName)
                    {
                    case JsonProperties.MOST_PWC_SHOW_PROPERTY_NAME_WATCHER_COUNT:
                        traktMostPWCShow.WatcherCount = await jsonReader.ReadAsInt32Async(cancellationToken);

                        break;

                    case JsonProperties.MOST_PWC_SHOW_PROPERTY_NAME_PLAY_COUNT:
                        traktMostPWCShow.PlayCount = await jsonReader.ReadAsInt32Async(cancellationToken);

                        break;

                    case JsonProperties.MOST_PWC_SHOW_PROPERTY_NAME_COLLECTED_COUNT:
                        traktMostPWCShow.CollectedCount = await jsonReader.ReadAsInt32Async(cancellationToken);

                        break;

                    case JsonProperties.MOST_PWC_SHOW_PROPERTY_NAME_COLLECTOR_COUNT:
                        traktMostPWCShow.CollectorCount = await jsonReader.ReadAsInt32Async(cancellationToken);

                        break;

                    case JsonProperties.MOST_PWC_SHOW_PROPERTY_NAME_SHOW:
                        traktMostPWCShow.Show = await showObjectReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

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

                        break;
                    }
                }

                return(traktMostPWCShow);
            }

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

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject)
            {
                var showObjectReader = new ShowObjectJsonReader();
                ITraktRecentlyUpdatedShow traktRecentlyUpdatedShow = new TraktRecentlyUpdatedShow();

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

                    switch (propertyName)
                    {
                    case JsonProperties.RECENTLY_UPDATED_SHOW_PROPERTY_NAME_UPDATED_AT:
                    {
                        var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken);

                        if (value.First)
                        {
                            traktRecentlyUpdatedShow.RecentlyUpdatedAt = value.Second;
                        }

                        break;
                    }

                    case JsonProperties.RECENTLY_UPDATED_SHOW_PROPERTY_NAME_SHOW:
                        traktRecentlyUpdatedShow.Show = await showObjectReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

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

                        break;
                    }
                }

                return(traktRecentlyUpdatedShow);
            }

            return(await Task.FromResult(default(ITraktRecentlyUpdatedShow)));
        }
Exemple #4
0
        public override async Task <ITraktTrendingShow> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default)
        {
            if (jsonReader == null)
            {
                return(await Task.FromResult(default(ITraktTrendingShow)));
            }

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject)
            {
                var showObjectReader = new ShowObjectJsonReader();
                ITraktTrendingShow traktTrendingShow = new TraktTrendingShow();

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

                    switch (propertyName)
                    {
                    case JsonProperties.TRENDING_SHOW_PROPERTY_NAME_WATCHERS:
                        traktTrendingShow.Watchers = await jsonReader.ReadAsInt32Async(cancellationToken);

                        break;

                    case JsonProperties.TRENDING_SHOW_PROPERTY_NAME_SHOW:
                        traktTrendingShow.Show = await showObjectReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

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

                        break;
                    }
                }

                return(traktTrendingShow);
            }

            return(await Task.FromResult(default(ITraktTrendingShow)));
        }
Exemple #5
0
        public override async Task <ITraktMostAnticipatedShow> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default)
        {
            CheckJsonTextReader(jsonReader);

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject)
            {
                var showObjectReader = new ShowObjectJsonReader();
                ITraktMostAnticipatedShow traktMostAnticipatedShow = new TraktMostAnticipatedShow();

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

                    switch (propertyName)
                    {
                    case JsonProperties.PROPERTY_NAME_LIST_COUNT:
                        traktMostAnticipatedShow.ListCount = await jsonReader.ReadAsInt32Async(cancellationToken);

                        break;

                    case JsonProperties.PROPERTY_NAME_SHOW:
                        traktMostAnticipatedShow.Show = await showObjectReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

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

                        break;
                    }
                }

                return(traktMostAnticipatedShow);
            }

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