public async Task <UseCaseResult> Handle([NotNull] GetMemberManagement request, CancellationToken cancellationToken)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            if (!await currentUser.GetIsAdminAsync())
            {
                logger.LogError("Use [{currentUserName}] has no access for getting member-management information!", currentUser.Username);
                return(UseCaseResult.AccessDenied());
            }

            var profiles   = (await diverRepository.GetAllDiversAsync()).ToList();
            var allMembers = await diverRepository.GetAllTauchboldeUsersAsync();

            var allUsers = userManager.Users
                           .Where(u => allMembers.All(d => d.UserId != u.Id))
                           .Select(u => u.UserName);

            request.OutputPort?.Output(
                new MemberManagementOutput(await MapMembersAsync(profiles), allUsers));

            return(UseCaseResult.Success());
        }