GetPaginatedBadges(int userId, int skip, int take) { int activeUserId = GetActiveUserId(); if (userId == activeUserId || HasPermission(Permission.ViewParticipantDetails)) { return(new DataWithCount <IEnumerable <Badge> > { Data = await _badgeRepository.PageForUserAsync(userId, skip, take), Count = await _badgeRepository.GetCountForUserAsync(userId) }); } else { _logger.LogError($"User {activeUserId} doesn't have permission to view details for {userId}."); throw new GraException("Permission denied."); } }