public async Task <IActionResult> ClientRegister(ClientRegisterDto userRegisterDto) { //var agency = await _agencyRepo.GetHotelWithCode(userRegisterDto.AgencyId); //if (agency == null) // return NotFound($"Could not find agency with Id {userRegisterDto.AgencyId}"); var userToCreate = _mapper.Map <User>(userRegisterDto); userToCreate.IsClient = true; userToCreate.UserName = userRegisterDto.Email; userToCreate.Created = DateTime.UtcNow; userToCreate.LastActive = DateTime.UtcNow; var result = await _userManager.CreateAsync(userToCreate, userRegisterDto.Password); if (result.Succeeded) { // set a default role var roleResult = await _userManager.AddToRolesAsync(userToCreate, new[] { "Agent" }); var userToReturn = _mapper.Map <UserDto>(userToCreate); return(CreatedAtRoute("GetUser", new { controller = "Users", id = userToCreate.Id }, userToReturn)); } return(BadRequest(result.Errors)); }
public async Task <ActionResult <UserManagerResponse> > RegisterClient([FromBody] ClientRegisterDto clientRegisterDto) { if (ModelState.IsValid) { var result = await _ClientService.RegisterClientAsync(clientRegisterDto); if (result.IsSuccessful) { return(Ok(result)); } } return(BadRequest("Register Properties Are Not Valid")); }
public async Task <UserManagerResponse> RegisterClientAsync(ClientRegisterDto model) { if (model.Password != model.ConfirmPassword) { return(new UserManagerResponse { IsSuccessful = false, Message = "Confirm Password doesn't match the password" }); } var IdentityUser = new CustomIdentityUser { Email = model.Email, UserName = model.Email, FirstName = model.FirstName, LastName = model.LastName }; var result = await _UserManager.CreateAsync(IdentityUser, model.Password); if (result.Succeeded) { var confirmationToken = await _UserManager.GenerateEmailConfirmationTokenAsync(IdentityUser); var validWebToken = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(confirmationToken)); var url = $"{_Configurations["BaseUrl"]}/api/Auth/ConfirmEmail/?userid={IdentityUser.Id}&token={validWebToken}"; await SendConfirmationMail(IdentityUser.Email, url); return(new UserManagerResponse { IsSuccessful = true, Message = "The user Has Been Created Successfully", }); } return(new UserManagerResponse { IsSuccessful = false, Message = "User didn't create", Errors = result.Errors.Select(e => e.Description) }); }