public async Task <DataWithCount <IEnumerable <Mail> > > GetUserPaginatedAsync( int getMailForUserId, int skip, int take) { if (HasPermission(Permission.ReadAllMail)) { return(new DataWithCount <IEnumerable <Mail> > { Data = await _mailRepository.PageUserAsync(getMailForUserId, skip, take), Count = await _mailRepository.GetUserCountAsync(getMailForUserId) }); } else { var requestingUser = GetClaimId(ClaimType.UserId); _logger.LogError($"User {requestingUser} doesn't have permission to view messages for {getMailForUserId}."); throw new GraException("Permission denied."); } }