public async Task <UserRole> CreateRole(AppDiscordRole role, string?aliasList) { var existingRole = await _userRoleRepo.GetRoleByDiscordRoleId(role.Id); if (existingRole != null) { throw new ArgumentException("User role already exists"); } var userRole = await _userRoleRepo.CreateRole(role.Id, role.Name); if (aliasList != null) { var aliases = aliasList.Split(',').Where(a => !string.IsNullOrWhiteSpace(a)).ToList(); var newAliases = new List <UserRoleAlias>(); foreach (var alias in aliases) { var aliasName = alias.Trim().ToLower(); var newAlias = await _userRoleRepo.CreateRoleAlias(userRole.Id, aliasName); newAliases.Add(newAlias); } userRole.UserRoleAliases = newAliases; } return(userRole); }