/// <summary> /// Used to create new user /// It will throw an exception if it coudn't be added /// Or set into the model correct id if everything was fine /// </summary> /// <param name="user"></param> public void CreateNewUser(DetailedUserData user, string password) { var dbUser = config.CreateMapper().Map <User>(user); PasswordHash hash = new PasswordHash(password); dbUser.Password = Convert.ToBase64String(hash.ToArray()); try { var id = repository.Add(dbUser); unitOfWork.Commit(); user.ID = id; } catch (Exception ex) { // please add logger functionality here throw ex; } }
public ActionResult Register(RegisterViewModel model) { if (ModelState.IsValid) { DetailedUserData user = null; if (!authService.UserNameExist(model.Username) && !authService.EmailExist(model.Email)) { try { user = new DetailedUserData() { UserName = model.Username, Email = model.Email, Roles = new[] { "user" }, //make it better if you will have enough time }; authService.CreateNewUser(user, model.Password); Modules.Authentication.AuthenticationHelper.AuthUser(Response, user.UserName, user.ID, user.Roles.ToArray(), false); if (Request.IsAjaxRequest()) { // ajax request :) } return(RedirectToAction("Chat", "Home")); } catch { ModelState.AddModelError("", "Ошибка при регистрации"); } } } ModelState.AddModelError("", "Ошибка при регистрации"); if (Request.IsAjaxRequest()) { // ajax request :) //Response.Write(Url.Action("Register")); //return new HttpStatusCodeResult(400); } return(View(model)); }