public DatabaseOperationResult RegisterUser(RegisterViewModel model) { var result = new DatabaseOperationResult(); model.Email = model.Email.Trim(); if (this.FindUserByEmail(model.Email) != null) { result.AddError("The email has already been taken."); return result; } if (this.FindUserByUsername(model.Username) != null) { result.AddError("The username has already been taken."); return result; } var encryptedPassword = _webHelper.EncryptToMd5(model.Password); var currentIpAddress = _webHelper.GetCurrentIpAddress(); var getUserRole = _unitOfWork.UserRoleRepository.Table() .FirstOrDefault(x => x.Name == SystemUserRoleNames.User); if (getUserRole == null) { result.AddError("User acceptance is currently off, please contact to administrator."); return result; } _unitOfWork.UserRepository.Insert(new User { Email = model.Email.Trim(), IPAddress = currentIpAddress, LastActivity = System.DateTime.Now, Password = encryptedPassword, Username = model.Username, UserRoleId = getUserRole.Id }); _unitOfWork.Save(); return result; }
public ActionResult Register(RegisterViewModel model, bool captchaValid) { if (!captchaValid) ModelState.AddModelError("", "Wrong captcha !"); if (ModelState.IsValid) { var result = _userService.RegisterUser(model); if (result.Success) { ViewBag.Message = "Your account created successfuly."; return View(); } foreach (var error in result.Errors) ModelState.AddModelError("", error); } return View(model); }