WIP
This commit is contained in:
@@ -118,15 +118,17 @@ public class UserManagementService : IUserManagementService
|
||||
|
||||
public async Task<CreateUserResult> CreateAsync(CreateUserRequest request)
|
||||
{
|
||||
// Validate Member exists (FindAsync bypasses query filter — intentional)
|
||||
var member = await _db.Members.FindAsync(request.MemberId)
|
||||
?? throw new InvalidOperationException(
|
||||
$"Member {request.MemberId} does not exist.");
|
||||
// Validate member and uniqueness only when a MemberId is provided
|
||||
if (request.MemberId.HasValue)
|
||||
{
|
||||
var member = await _db.Members.FindAsync(request.MemberId.Value)
|
||||
?? throw new InvalidOperationException(
|
||||
$"Member {request.MemberId} does not exist.");
|
||||
|
||||
// One user per member
|
||||
if (_userManager.Users.Any(u => u.MemberId == request.MemberId))
|
||||
throw new InvalidOperationException(
|
||||
"This member already has a user account.");
|
||||
if (_userManager.Users.Any(u => u.MemberId == request.MemberId))
|
||||
throw new InvalidOperationException(
|
||||
"This member already has a user account.");
|
||||
}
|
||||
|
||||
// Unique email
|
||||
if (await _userManager.FindByEmailAsync(request.Email) is not null)
|
||||
|
||||
Reference in New Issue
Block a user