public virtual async Task <List <RatingWithStarCountDto> > GetGroupedStarCountsAsync(string entityType, string entityId) { var ratings = await RatingRepository.GetGroupedStarCountsAsync(entityType, entityId); var userRatingOrNull = CurrentUser.IsAuthenticated ? await RatingRepository.GetCurrentUserRatingAsync(entityType, entityId, CurrentUser.GetId()) : null; var ratingWithStarCountDto = new List <RatingWithStarCountDto>(); foreach (var rating in ratings) { ratingWithStarCountDto.Add( new RatingWithStarCountDto { StarCount = rating.StarCount, Count = rating.Count, IsSelectedByCurrentUser = userRatingOrNull != null && userRatingOrNull.StarCount == rating.StarCount }); } return(ratingWithStarCountDto); }