Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 private User RegisterUserMapping(RegisterView registerView)
 {
     if (registerView.Email == null)
     {
         registerView.Email = "";
     }
     return new User
     {
         Email = registerView.Email,
         UserName = registerView.UserName,
         Password = registerView.Password
     };
 }