Fix exception while setting Chapter Ratings when no reviews are found fixes #3843
This commit is contained in:
parent
46d5bf2a83
commit
11d058308f
1 changed files with 18 additions and 11 deletions
|
|
@ -1199,32 +1199,39 @@ public class ExternalMetadataService : IExternalMetadataService
|
||||||
|
|
||||||
#region Rating
|
#region Rating
|
||||||
|
|
||||||
var averageCriticRating = metadata.CriticReviews.Average(r => r.Rating);
|
// C# can't make the implicit conversation here
|
||||||
var averageUserRating = metadata.UserReviews.Average(r => r.Rating);
|
float? averageCriticRating = metadata.CriticReviews.Count > 0 ? metadata.CriticReviews.Average(r => r.Rating) : null;
|
||||||
|
float? averageUserRating = metadata.UserReviews.Count > 0 ? metadata.UserReviews.Average(r => r.Rating) : null;
|
||||||
|
|
||||||
var existingRatings = await _unitOfWork.ChapterRepository.GetExternalChapterRatings(chapter.Id);
|
var existingRatings = await _unitOfWork.ChapterRepository.GetExternalChapterRatings(chapter.Id);
|
||||||
_unitOfWork.ExternalSeriesMetadataRepository.Remove(existingRatings);
|
_unitOfWork.ExternalSeriesMetadataRepository.Remove(existingRatings);
|
||||||
|
|
||||||
chapter.ExternalRatings =
|
chapter.ExternalRatings = [];
|
||||||
[
|
|
||||||
new ExternalRating
|
if (averageUserRating != null)
|
||||||
|
{
|
||||||
|
chapter.ExternalRatings.Add(new ExternalRating
|
||||||
{
|
{
|
||||||
AverageScore = (int) averageUserRating,
|
AverageScore = (int) averageUserRating,
|
||||||
Provider = ScrobbleProvider.Cbr,
|
Provider = ScrobbleProvider.Cbr,
|
||||||
Authority = RatingAuthority.User,
|
Authority = RatingAuthority.User,
|
||||||
ProviderUrl = metadata.IssueUrl,
|
ProviderUrl = metadata.IssueUrl,
|
||||||
},
|
|
||||||
new ExternalRating
|
});
|
||||||
|
chapter.AverageExternalRating = averageUserRating.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (averageCriticRating != null)
|
||||||
|
{
|
||||||
|
chapter.ExternalRatings.Add(new ExternalRating
|
||||||
{
|
{
|
||||||
AverageScore = (int) averageCriticRating,
|
AverageScore = (int) averageCriticRating,
|
||||||
Provider = ScrobbleProvider.Cbr,
|
Provider = ScrobbleProvider.Cbr,
|
||||||
Authority = RatingAuthority.Critic,
|
Authority = RatingAuthority.Critic,
|
||||||
ProviderUrl = metadata.IssueUrl,
|
ProviderUrl = metadata.IssueUrl,
|
||||||
|
|
||||||
},
|
});
|
||||||
];
|
}
|
||||||
|
|
||||||
chapter.AverageExternalRating = averageUserRating;
|
|
||||||
|
|
||||||
madeModification = averageUserRating > 0f || averageCriticRating > 0f || madeModification;
|
madeModification = averageUserRating > 0f || averageCriticRating > 0f || madeModification;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue