public async Task <PaginationResult <ClientEntity> > GetClientsAsync( ClaimsPrincipal user, CancellationToken cancellationToken, ClientSearchCriteria clientSearchCriteria) { if (!user.Identity.IsAuthenticated) { throw new InvalidOperationException("Missing user context"); } if (!PermissionCheck.HasAdminPermission(user, clientSearchCriteria.TenantId)) { throw new InvalidOperationException("Access denied"); } var results = await _clientStore .GetClientsAsync(clientSearchCriteria, cancellationToken); return(new PaginationResult <ClientEntity> { PageIndex = results.PageIndex, PageSize = results.PageSize, TotalCount = results.TotalCount, Items = results.Items.Select(i => new ClientEntity(i)) }); }