public async Task<ActionResult> Register(RegisterView user) { if (ModelState.IsValid) { var appUser = RegisterUserMapping(user); var emailResult = await _appUserManager.FindByEmailAsync(appUser.Email); if (emailResult != null) { ModelState.AddModelError("email", "Такая почта уже зарегистрированна"); } var result = await _appUserManager.CreateAsync(appUser, appUser.Password); if (result.Succeeded) { _unitOfWork.Commit(); await _appUserManager.AddToRoleAsync(appUser.Id, "user"); // await SignInAsync(appUser, isPersistent: false); _unitOfWork.Commit(); string subject = "Подтвеождение регистрации на портале MYPROF.COM.UA"; string body = string.Format("Для завершения регистрации перейдите по ссылке:" + "<a href=\"{0}\" title=\"Подтвердить регистрацию\">{0}</a>", Url.Action("ConfirmEmail", "Account", new { Token = appUser.Id, Email = appUser.Email }, Request.Url.Scheme)); _appUserManager.SendEmail<User, string>(appUser.Id, subject, body); return Json("/Home/Index", JsonRequestBehavior.AllowGet); } else { AddErrors(result); } } var errors = ModelState.Select(a => new { ErrorKey = a.Key, ErrorList = (a.Value.Errors.Select(b => b.ErrorMessage)).ToList() }).ToList(); Response.StatusCode = 500; return Json(errors, JsonRequestBehavior.AllowGet); }
private User RegisterUserMapping(RegisterView registerView) { if (registerView.Email == null) { registerView.Email = ""; } return new User { Email = registerView.Email, UserName = registerView.UserName, Password = registerView.Password }; }