示例#1
0
        public async Task <ActionResult> Register(RegisterViewModel model, string returnUrl)
        {
            if (string.IsNullOrEmpty(returnUrl))
            {
                return(new HttpStatusCodeResult((int)HttpStatusCode.BadRequest));
            }
            var id = GetLoggedInUserId();

            if (!string.IsNullOrEmpty(id))
            {
                return(RedirectToAction("Confirm"));
            }

            var registerResult = await _accountOrchestrator.Register(model, returnUrl);

            if (registerResult?.FlashMessage?.ErrorMessages == null || !registerResult.FlashMessage.ErrorMessages.Any())
            {
                return(RedirectToAction("Confirm"));
            }

            registerResult.Data.ConfirmPassword = string.Empty;
            registerResult.Data.Password        = string.Empty;
            registerResult.Data.ReturnUrl       = returnUrl;

            if (registerResult.FlashMessage.ErrorMessages.ContainsKey(nameof(model.Email)))
            {
                registerResult.FlashMessage.ErrorMessages[nameof(model.Email)] = registerResult.FlashMessage.ErrorMessages[nameof(model.Email)]
                                                                                 .Replace("__loginurl__", Url.Action("RedirectToRelyingPartyLogin", "Account", new { clientId = model.ClientId, returnUrl = model.ReturnUrl }));
            }


            return(View("Register", registerResult));
        }
        public async Task ThenABooleanValueIsReturned()
        {
            //Act
            var actual = await _accountOrchestrator.Register(_registerUserViewModel, ReturnUrl);

            //Assert
            Assert.IsNotNull(actual);
            Assert.IsAssignableFrom <OrchestratorResponse <RegisterViewModel> >(actual);
        }