public async Task <Result <UnverifiedAccount> > RegisterAccount( UnregisteredAccount u ) { var user = await _userManager.FindByEmailAsync(u.Email); if (user != null) { var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); return(new Ok <UnverifiedAccount>(new UnverifiedAccount(user.Email, user.Id, code))); } else { user = new IdsUser() { Id = Guid.NewGuid().ToString(), UserName = u.Email, Email = u.Email }; var registration = await _userManager.CreateAsync(user); if (registration.Succeeded) { var emptyProfile = await _userManager.AddClaimsAsync(user, EmptyProfile); if (emptyProfile.Succeeded) { var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); return(new Ok <UnverifiedAccount>(new UnverifiedAccount(user.Email, user.Id, code))); } else { return(emptyProfile.ToAppError <UnverifiedAccount>()); } } else { return(registration.ToAppError <UnverifiedAccount>()); } } }
public async Task <Result <Guid> > Invite(string email) { var u = await _userManager.FindByEmailAsync(email); if (u == null) { var newUserId = Guid.NewGuid(); var newUser = new IdsUser() { Id = newUserId.ToString(), UserName = email, Email = email }; var createUserResult = await _userManager.CreateAsync(newUser); if (createUserResult.Succeeded) { var emptyProfile = await _userManager.AddClaimsAsync(newUser, EmptyProfile); if (emptyProfile.Succeeded) { return(new Ok <Guid>(newUserId)); } else { return(emptyProfile.ToAppError <Guid>()); } } else { return(createUserResult.ToAppError <Guid>()); } } else { return(new Ok <Guid>(Guid.Parse(u.Id))); } }