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(); }
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))); }