コード例 #1
0
        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);
        }