public async Task <IActionResult> Register(RegisterModel model) { if (model.CompanyName != null) { var userProfile = _userProfile.SaveUserProfile(model); if (ModelState.IsValid && userProfile.Status == Common.Enums.StatusEnum.Success) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, UserProfileId = userProfile.Value }; var result = await _user.UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { var code = await _user.UserManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme); await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl); _adapterService.AdapterSeed(userProfile.Value); //await _user.SignInAsync(user, isPersistent: false); //return RedirectToAction("Index", "Home"); return(RedirectToAction("CheckEmailNotification", "Account")); } else { _userProfile.DeleteUserProfile(userProfile.Value); } } } else { var userProfile = _userProfile.SaveUserProfile(model); if (ModelState["Email"].ValidationState == ModelValidationState.Valid && ModelState["Password"].ValidationState == ModelValidationState.Valid && ModelState["ConfirmPassword"].ValidationState == ModelValidationState.Valid && userProfile.Status == Common.Enums.StatusEnum.Success) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, UserProfileId = userProfile.Value }; var result = await _user.UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { var code = await _user.UserManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme); await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl); _adapterService.AdapterSeed(userProfile.Value); //await _user.SignInAsync(user, isPersistent: false); //return RedirectToAction("Index", "Home"); return(RedirectToAction("CheckEmailNotification", "Account")); } else { var errorList = result.Errors.ToList(); ModelState.AddModelError("", errorList[0].Description); _userProfile.DeleteUserProfile(userProfile.Value); } } else { ModelState.AddModelError("", "Failed to register"); _userProfile.DeleteUserProfile(userProfile.Value); } return(View("Register")); } ModelState.AddModelError("", "Failed to register"); return(View(model)); }