public async Task <IActionResult> Register(RegisterViewModel registerViewModel) { if (!ModelState.IsValid) { NotifyModelStateErrors(); return(View(registerViewModel)); } var user = new RCMIdentityUser(registerViewModel.Email, registerViewModel.FirstName, registerViewModel.LastName, registerViewModel.Age); var identityResult = await _rcmUserManager.CreateAsync(user, registerViewModel.Password); if (identityResult.Succeeded) { var code = await _rcmUserManager.GenerateEmailConfirmationTokenAsync(user); await SendAccountConfirmationEmailAsync(user.Email, code); await _rcmSignInManager.SignInAsync(user, isPersistent : false); return(RedirectToPlatform()); } else { NotifyIdentityErrors(identityResult); } return(View(registerViewModel)); }
public async Task <IActionResult> ExternalLoginConfirmation(ExternalLoginViewModel confirmationViewModel) { if (!ModelState.IsValid) { NotifyModelStateErrors(); return(View(confirmationViewModel)); } var providerInfo = await _rcmSignInManager.GetExternalLoginInfoAsync(); var user = new RCMIdentityUser(providerInfo.Principal.FindFirst(ClaimTypes.Email).Value, confirmationViewModel.FirstName, confirmationViewModel.LastName, confirmationViewModel.Age); var identityResult = await _rcmUserManager.CreateAsync(user); if (identityResult.Succeeded) { var externalResult = await _rcmUserManager.AddLoginAsync(user, providerInfo); if (externalResult.Succeeded) { var code = await _rcmUserManager.GenerateEmailConfirmationTokenAsync(user); await SendAccountConfirmationEmailAsync(user.Email, code); return(RedirectToAction(nameof(ExternalLogin))); } else { NotifyIdentityErrors(identityResult); } } return(View(confirmationViewModel)); }
public async Task <IActionResult> Update(EmpresaViewModel empresa) { if (!ModelState.IsValid) { NotifyModelStateErrors(); return(View(empresa)); } var commandResult = await _empresaApplicationService.AddOrUpdate(empresa); if (commandResult.Success) { if (!_httpContextAccessor.HttpContext.User.HasClaim(c => c.Type == "ActiveCompany")) { _user = await _rcmUserManager.GetUserAsync(_httpContextAccessor.HttpContext.User); var result = await _rcmUserManager.AddClaimAsync(_user, new Claim("ActiveCompany", "True")); if (result.Succeeded) { await _rcmSignInManager.RefreshSignInAsync(_user); } else { NotifyIdentityErrors(result); return(View(empresa)); } } NotifyCommandResultSuccess(); return(RedirectToAction(nameof(Details))); } else { NotifyCommandResultErrors(commandResult.Errors); } return(View(empresa)); }
public ProfileViewModel(RCMIdentityUser user) { FirstName = user.FirstName; LastName = user.LastName; Age = user.Age; }