public async Task <TokenApiModel> RegisterUserAsync(UserRegisterApiModel model) { var searchUser = _userManager.FindByEmailAsync(model.Email).Result; if (searchUser != null && searchUser.IsDeleted == true) { throw new UserIsDeletedException(_resourceManager.GetString("UserIsDeleted")); } if (searchUser != null) { throw new BadRequestException(_resourceManager.GetString("EmailExist")); } if (!model.Password.Equals(model.ConfirmPassword)) { throw new BadRequestException(_resourceManager.GetString("PasswordsNotMatch")); } var userByUsername = _userManager.FindByNameAsync(model.UserName).Result; if (userByUsername != null) { throw new BadRequestException(_resourceManager.GetString("UsernameExist")); } var dbUser = new DbUser { Email = model.Email, UserName = model.UserName, }; var resultCreated = await _userRepository.CreateAsync(dbUser, model.Password); if (!resultCreated.Succeeded) { throw new BadRequestException(resultCreated.Errors.First().Description); } await _userRepository.CreateProfileAsync(dbUser.Id); await ConfirmMailSendLinkOnEmailAsync(dbUser.Email); var token = _jwtService.CreateToken(_jwtService.SetClaims(dbUser)); var refreshToken = _jwtService.CreateRefreshToken(); await _userRepository.UpdateUserTokenAsync(dbUser.Id, refreshToken); await _signInManager.SignInAsync(dbUser, isPersistent : false); return(new TokenApiModel { Token = token, RefreshToken = refreshToken }); }
public async Task <IActionResult> Register([FromBody] UserRegisterApiModel model) { var validator = new RegisterValidator(_recaptcha, _resourceManager); var validResult = validator.Validate(model); if (!validResult.IsValid) { return(BadRequest(new MessageApiModel() { Message = validResult.ToString() })); } var RegisterResult = await _accountService.RegisterUserAsync(model); return(Created("", RegisterResult)); }
public async Task <HttpResponseMessage> UserRegister([FromBody] UserRegisterApiModel model) { try { if (ModelState.IsValid) { if (model.IsValid == false) { return(Request.CreateResponse(HttpStatusCode.BadRequest, MessagesResources.RegisterUserInvalidData)); } if (await ValidateUserName(model.Email) == false) { return(Request.CreateResponse(HttpStatusCode.BadRequest, MessagesResources.RegisterUserEmailExist)); } var user = new ApplicationUser { Id = Guid.NewGuid(), UserName = model.Email, Email = model.Email, EmailConfirmed = true, }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { UserManager.AddToRole(user.Id, "User"); return(Request.CreateResponse(HttpStatusCode.OK)); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, MessagesResources.RegisterUserFail)); } } return(Request.CreateResponse(HttpStatusCode.BadRequest, MessagesResources.GeneralError)); } catch (Exception exception) { ErrorLog.GetDefault(HttpContext.Current).Log(new Error(exception)); return(Request.CreateResponse(HttpStatusCode.BadRequest, MessagesResources.GeneralError)); } }