private async Task EnsureAdministratorUser(CancellationToken cancellationToken)
        {
            await foreach (var user in userService.GetAllUsers(cancellationToken))
            {
                var userRoles = await userService.GetUserRoles(user.Id, cancellationToken);

                if (userRoles.Any(role => SecurityConstants.IsAdministratorRole(role.RoleName)))
                {
                    return;
                }
            }

            logger.LogWarning("No user with role {RoleName} exists. Creating default administrator ...", SecurityConstants.AdministratorRole);
            await userService.CreateDefaultAdministrator(cancellationToken);
        }
        private async Task EnsureAdministratorRole(CancellationToken cancellationToken)
        {
            var administratorRole = await roleService.GetAllRoles(cancellationToken)
                                    .Where(r => SecurityConstants.IsAdministratorRole(r.RoleName))
                                    .FirstOrDefaultAsync(cancellationToken);

            if (administratorRole != null)
            {
                return;
            }

            logger.LogWarning("The role {RoleName} does not exist, creating one ...", SecurityConstants.AdministratorRole);

            await roleService.CreateRole(SecurityConstants.AdministratorRole, cancellationToken);
        }