Example #1
0
 public TraktItem(TraktWatchlistItem watchlistItem)
 {
     if (watchlistItem.Type == TraktSyncItemType.Movie)
     {
         Type  = TraktItemType.Movie;
         Movie = watchlistItem.Movie;
     }
     else if (watchlistItem.Type == TraktSyncItemType.Show)
     {
         Type = TraktItemType.Show;
         Show = watchlistItem.Show;
     }
     else if (watchlistItem.Type == TraktSyncItemType.Season)
     {
         Type   = TraktItemType.Season;
         Show   = watchlistItem.Show;
         Season = watchlistItem.Season;
     }
     else if (watchlistItem.Type == TraktSyncItemType.Episode)
     {
         Type    = TraktItemType.Episode;
         Show    = watchlistItem.Show;
         Episode = watchlistItem.Episode;
     }
 }
        public void TestTraktWatchlistItemDefaultConstructor()
        {
            var watchlistItem = new TraktWatchlistItem();

            watchlistItem.ListedAt.Should().NotHaveValue();
            watchlistItem.Type.Should().BeNull();
            watchlistItem.Movie.Should().BeNull();
            watchlistItem.Show.Should().BeNull();
            watchlistItem.Season.Should().BeNull();
            watchlistItem.Episode.Should().BeNull();
        }
Example #3
0
        public override async Task <ITraktWatchlistItem> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default)
        {
            if (jsonReader == null)
            {
                return(await Task.FromResult(default(ITraktWatchlistItem)));
            }

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject)
            {
                var movieObjectReader   = new MovieObjectJsonReader();
                var showObjectReader    = new ShowObjectJsonReader();
                var seasonObjectReader  = new SeasonObjectJsonReader();
                var episodeObjectReader = new EpisodeObjectJsonReader();

                ITraktWatchlistItem traktWatchlistItem = new TraktWatchlistItem();

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

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

                        if (value.First)
                        {
                            traktWatchlistItem.ListedAt = value.Second;
                        }

                        break;
                    }

                    case JsonProperties.WATCHLIST_ITEM_PROPERTY_NAME_TYPE:
                        traktWatchlistItem.Type = await JsonReaderHelper.ReadEnumerationValueAsync <TraktSyncItemType>(jsonReader, cancellationToken);

                        break;

                    case JsonProperties.WATCHLIST_ITEM_PROPERTY_NAME_MOVIE:
                        traktWatchlistItem.Movie = await movieObjectReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

                    case JsonProperties.WATCHLIST_ITEM_PROPERTY_NAME_SHOW:
                        traktWatchlistItem.Show = await showObjectReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

                    case JsonProperties.WATCHLIST_ITEM_PROPERTY_NAME_SEASON:
                        traktWatchlistItem.Season = await seasonObjectReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

                    case JsonProperties.WATCHLIST_ITEM_PROPERTY_NAME_EPISODE:
                        traktWatchlistItem.Episode = await episodeObjectReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

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

                        break;
                    }
                }

                return(traktWatchlistItem);
            }

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