public async Task <IActionResult> Register(AccountRegisterModel register) { var u = await _userManager.FindByEmailAsync(register.Email ?? ""); if (u != null) { ModelState.AddModelError("Email", "Email is already taken"); } else if (ModelState.IsValid) { var user = _mapper.AccountRegisterModelToApplicationUser(register); var result = await _userManager.CreateAsync(user, register.Password); if (result.Succeeded) { var loginModel = new AccountLoginModel { Email = register.Email, Password = register.Password, }; await _userManager.AddToRoleAsync(user, "Customer"); if (!_signInManager.IsSignedIn(User)) { await _signInManager.PasswordSignInAsync(user, register.Password, false, false); } if (!string.IsNullOrEmpty(register.ReturnUrl)) { return(Redirect(register.ReturnUrl)); } return(RedirectToAction("Index", "Home")); } } return(View(register)); }