private ITraktSyncRatingsPostShow CreateSyncRatingsPostShow(ITraktShow show, int?rating = null, DateTime?ratedAt = null) { var syncRatingsPostShow = new TraktSyncRatingsPostShow { Ids = show.Ids, Title = show.Title, Year = show.Year }; if (rating.HasValue) { syncRatingsPostShow.Rating = rating.Value; } if (ratedAt.HasValue) { syncRatingsPostShow.RatedAt = ratedAt.Value.ToUniversalTime(); } return(syncRatingsPostShow); }
public override async Task <ITraktSyncRatingsPostShow> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktSyncRatingsPostShow))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var showIdsObjectJsonReader = new ShowIdsObjectJsonReader(); var seasonArrayJsonReader = new SyncRatingsPostShowSeasonArrayJsonReader(); ITraktSyncRatingsPostShow syncRatingsPostShow = new TraktSyncRatingsPostShow(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.SYNC_RATINGS_POST_SHOW_PROPERTY_NAME_RATED_AT: { Pair <bool, DateTime> value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { syncRatingsPostShow.RatedAt = value.Second; } break; } case JsonProperties.SYNC_RATINGS_POST_SHOW_PROPERTY_NAME_RATING: syncRatingsPostShow.Rating = await jsonReader.ReadAsInt32Async(cancellationToken); break; case JsonProperties.SYNC_RATINGS_POST_SHOW_PROPERTY_NAME_TITLE: syncRatingsPostShow.Title = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.SYNC_RATINGS_POST_SHOW_PROPERTY_NAME_YEAR: syncRatingsPostShow.Year = await jsonReader.ReadAsInt32Async(cancellationToken); break; case JsonProperties.SYNC_RATINGS_POST_SHOW_PROPERTY_NAME_IDS: syncRatingsPostShow.Ids = await showIdsObjectJsonReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.SYNC_RATINGS_POST_SHOW_PROPERTY_NAME_SEASONS: syncRatingsPostShow.Seasons = await seasonArrayJsonReader.ReadArrayAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(syncRatingsPostShow); } return(await Task.FromResult(default(ITraktSyncRatingsPostShow))); }