public async Task <ActionResult> Register(AspNetUserRegisterViewModel model) { List <String> errorList = new List <string>(); ResponseModel <AspNetUserRegisterViewModel> response = null; try { bool isValidAccount = ValidateRegisterInfo(errorList, model); if (isValidAccount) { var user = new ApplicationUser { UserName = model.UserName, Email = model.Email, PhoneNumber = model.PhoneNumber }; var registerResult = await UserManager.CreateAsync(user, model.Password); if (registerResult.Succeeded) { var userService = this.Service <IAspNetUserService>(); var userEntity = userService.FindUserByUserName(user.UserName); userEntity.FullName = model.FullName; userEntity.Active = true; if (model.PlaceOwner != null) { userEntity.Status = (int)UserStatus.Pending; UserManager.AddToRole(userEntity.Id, Utils.GetEnumDescription(UserRole.PlaceOwner)); } else { userEntity.Status = (int)UserStatus.Active; UserManager.AddToRole(userEntity.Id, Utils.GetEnumDescription(UserRole.Member)); } userService.Update(userEntity); var hobbyService = this.Service <IHobbyService>(); hobbyService.SaveHobbyForUser(userEntity.Id, model.Hobby); response = new ResponseModel <AspNetUserRegisterViewModel>(true, "Bạn đã đăng ký thành công", null, model); } else { AddErrors(registerResult, errorList); response = new ResponseModel <AspNetUserRegisterViewModel>(false, "Đăng ký không thành công", errorList, model); } } else { response = new ResponseModel <AspNetUserRegisterViewModel>(false, "Đăng ký không thành công", errorList, model); } } catch (Exception) { response = ResponseModel <AspNetUserRegisterViewModel> .CreateErrorResponse("Đăng ký không thành công", systemError); } return(Json(response)); }
private bool ValidateRegisterInfo(List <String> errorList, AspNetUserRegisterViewModel model) { var service = this.Service <IAspNetUserService>(); AspNetUser user = service.FirstOrDefaultActive(x => x.UserName == model.UserName); bool result = true; String emailRegex = @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z"; String phoneNumberRegex = @"^([0-9]{10,12})$"; if (user != null) { errorList.Add("Tên tài khoản đã tồn tại!"); result = false; } if (!Regex.IsMatch(model.Email, emailRegex)) { errorList.Add("Email không hợp lệ!"); result = false; } if (!Regex.IsMatch(model.PhoneNumber, phoneNumberRegex)) { errorList.Add("Số điện thoại không hợp lệ!"); result = false; } if (!model.Password.Equals(model.ConfirmPassword)) { errorList.Add("Mật khẩu và mật khẩu nhập lại không đúng!"); result = false; } if (model.Password.Length < 6) { errorList.Add("Mật khẩu phải có ít nhất 6 ký tự."); result = false; } if (model.UserName.Length < 6) { errorList.Add("Tên tài khoản phải có ít nhất 6 ký tự."); result = false; } return(result); }