Esempio n. 1
0
        private async Task <ReturnSignUserResponse> MakeDecisionAsync(User user,
                                                                      bool isExternal,
                                                                      ReturnUrlRequest?returnUrl,
                                                                      CancellationToken token)
        {
            if (user.PhoneNumberConfirmed)
            {
                if (isExternal)
                {
                    await _signInManager.SignInAsync(user, false);

                    return(ReturnSignUserResponse.SignIn());
                    // return new ReturnSignUserResponse(false);
                }

                throw new ArgumentException();
            }

            if (user.PhoneNumber != null)
            {
                var t1 = _signInManager.TempSignIn(user);
                var t2 = _client.SendSmsAsync(user, token);

                await Task.WhenAll(t1, t2);

                return(new ReturnSignUserResponse(RegistrationStep.RegisterVerifyPhone, new
                {
                    phoneNumber = user.PhoneNumber
                }));
            }

            if (user.EmailConfirmed)
            {
                await _signInManager.TempSignIn(user);

                return(new ReturnSignUserResponse(RegistrationStep.RegisterSetPhone));
            }

            await GenerateEmailAsync(user, returnUrl, token);

            return(new ReturnSignUserResponse(RegistrationStep.RegisterEmailConfirmed));
        }
Esempio n. 2
0
        private async Task <RedirectToRouteResult> GoToStepAsync(User user, RegistrationStep step, string returnUrl)
        {
            await _signInManager.TempSignIn(user);

            var v = RedirectToRoute(RegisterController.RegisterRouteName,
                                    new
            {
                page      = step.RoutePath,
                returnUrl = Url.IsLocalUrl(returnUrl) ? returnUrl : null
            });

            return(v);
        }