public override async Task <ITraktSyncRatingsPostMovie> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { CheckJsonTextReader(jsonReader); if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieIdsObjectJsonReader = new MovieIdsObjectJsonReader(); ITraktSyncRatingsPostMovie syncRatingsPostMovie = new TraktSyncRatingsPostMovie(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.PROPERTY_NAME_RATED_AT: { Pair <bool, DateTime> value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { syncRatingsPostMovie.RatedAt = value.Second; } break; } case JsonProperties.PROPERTY_NAME_RATING: syncRatingsPostMovie.Rating = await jsonReader.ReadAsInt32Async(cancellationToken); break; case JsonProperties.PROPERTY_NAME_TITLE: syncRatingsPostMovie.Title = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.PROPERTY_NAME_YEAR: syncRatingsPostMovie.Year = await jsonReader.ReadAsInt32Async(cancellationToken); break; case JsonProperties.PROPERTY_NAME_IDS: syncRatingsPostMovie.Ids = await movieIdsObjectJsonReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(syncRatingsPostMovie); } return(await Task.FromResult(default(ITraktSyncRatingsPostMovie))); }
private ITraktSyncRatingsPostMovie CreateSyncRatingsPostMovie(ITraktMovie movie, int?rating = null, DateTime?ratedAt = null) { var syncRatingsPostMovie = new TraktSyncRatingsPostMovie { Ids = movie.Ids, Title = movie.Title, Year = movie.Year }; if (rating.HasValue) { syncRatingsPostMovie.Rating = rating.Value; } if (ratedAt.HasValue) { syncRatingsPostMovie.RatedAt = ratedAt.Value.ToUniversalTime(); } return(syncRatingsPostMovie); }