Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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);
        }