public async Task <Guid> RegisterAsync( string country, string surname, string name, string login, string email, string phone, string password, string ipAddress, string userAgent, CancellationToken ct) { var profile = new Profile { Surname = surname, Name = name }; profile.Id = await _profilesService.CreateAsync(profile, ct); var passwordHash = PasswordUtils.ToPasswordHash(password); await _registrationIdentityService.CreateLoginIdentityAsync(profile.Id, login, passwordHash, ct); await _registrationIdentityService.CreateEmailIdentityAsync(profile.Id, email, passwordHash, ct); await _registrationIdentityService.CreatePhoneIdentityAsync(profile.Id, phone, passwordHash, ct); await _emailConfirmationService.SendMessageAsync(email, ipAddress, userAgent, ct); var tokenId = await _phoneConfirmationService.SendMessageAsync(country, phone, ipAddress, userAgent, ct); return(tokenId); }
public async Task <UserDto> RegisterAsync(UserRegisterModel registerModel) { var newUser = new User { FirstName = registerModel.FirstName, LastName = registerModel.LastName, Email = registerModel.Email, UserName = registerModel.Username, SecurityStamp = Guid.NewGuid().ToString() }; var result = await _userManager.CreateAsync(newUser, registerModel.Password); if (result.Succeeded) { await _profilesService.CreateAsync(newUser.Id.ToString()); var user = await _userManager.FindByEmailAsync(newUser.Email); return(user.ToDto()); } else { var message = string.Join(" ", result.Errors.Select(e => e.Description)); throw new RegisterUserException(message); } }