Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
 public ProfileViewModel(RCMIdentityUser user)
 {
     FirstName = user.FirstName;
     LastName  = user.LastName;
     Age       = user.Age;
 }