public void ValidationFailsTest()
        {
            // Arrange.
            var mediator = GetMediator();
            var user     = new ProviderUserViewModel {
                EmailAddress = ""
            };

            // Act.
            var response = mediator.UpdateUser("userName", "00001", user);

            // Assert.
            response.Should().NotBeNull();
            response.ValidationResult.IsValid.Should().BeFalse();
            response.Code.Should().Be(ProviderUserMediatorCodes.UpdateUser.FailedValidation);
        }
        public void ShouldPassValidation(string fullName, string email, string phoneNumber)
        {
            // Arrange.
            var viewModel = new ProviderUserViewModel
            {
                Fullname     = fullName,
                EmailAddress = email,
                PhoneNumber  = phoneNumber
            };

            // Act.
            var validator = new ProviderUserViewModelValidator();

            // Assert.
            validator.ShouldNotHaveValidationErrorFor(m => m.Fullname, viewModel);
            validator.ShouldNotHaveValidationErrorFor(m => m.EmailAddress, viewModel);
            validator.ShouldNotHaveValidationErrorFor(m => m.PhoneNumber, viewModel);
        }
Ejemplo n.º 3
0
        public ActionResult VerifyProviderUserEmail(ProviderUserViewModel viewModel)
        {
            var response = _adminMediator.VerifyProviderUserEmail(viewModel);

            ModelState.Clear();

            SetUserMessage(response.Message);

            switch (response.Code)
            {
            case AdminMediatorCodes.VerifyProviderUserEmail.Error:
                return(RedirectToRoute(RecruitmentRouteNames.AdminViewProviderUser, new { viewModel.ProviderUserId }));

            case AdminMediatorCodes.VerifyProviderUserEmail.Ok:
                return(RedirectToRoute(RecruitmentRouteNames.AdminViewProviderUser, new { viewModel.ProviderUserId }));

            default:
                throw new InvalidMediatorCodeException(response.Code);
            }
        }
        public ProviderUserViewModel SaveProviderUser(
            string username, string ukprn, ProviderUserViewModel providerUserViewModel)
        {
            var providerUser = _userProfileService.GetProviderUser(username);

            var isNewProviderUser = providerUser == null;

            if (isNewProviderUser)
            {
                var provider = _providerService.GetProvider(ukprn);

                providerUser = new ProviderUser
                {
                    ProviderId       = provider.ProviderId,
                    ProviderUserGuid = Guid.NewGuid(),
                    Status           = ProviderUserStatus.Registered
                };
            }

            var shouldSendEmailVerificationCode = isNewProviderUser || !string.Equals(providerUser.Email, providerUserViewModel.EmailAddress, StringComparison.CurrentCultureIgnoreCase);

            providerUser.Username                = username;
            providerUser.Status                  = providerUser.Status;
            providerUser.Fullname                = providerUserViewModel.Fullname;
            providerUser.Email                   = providerUserViewModel.EmailAddress;
            providerUser.PhoneNumber             = providerUserViewModel.PhoneNumber;
            providerUser.PreferredProviderSiteId = providerUserViewModel.DefaultProviderSiteId;

            var savedProviderUser = isNewProviderUser
                ? _userProfileService.CreateProviderUser(providerUser)
                : _userProfileService.UpdateProviderUser(providerUser);

            if (shouldSendEmailVerificationCode)
            {
                _providerUserAccountService.SendEmailVerificationCode(username);
            }

            return(Convert(savedProviderUser));
        }
Ejemplo n.º 5
0
        public ActionResult SaveProviderUser(ProviderUserViewModel viewModel)
        {
            var response = _adminMediator.SaveProviderUser(viewModel);

            ModelState.Clear();

            SetUserMessage(response.Message);

            switch (response.Code)
            {
            case AdminMediatorCodes.SaveProviderUser.FailedValidation:
                response.ValidationResult.AddToModelState(ModelState, "SearchViewModel");
                return(View("ProviderUser", response.ViewModel));

            case AdminMediatorCodes.SaveProviderUser.Error:
                return(RedirectToRoute(RecruitmentRouteNames.AdminViewProviderUser, new { viewModel.ProviderUserId }));

            case AdminMediatorCodes.SaveProviderUser.Ok:
                return(RedirectToRoute(RecruitmentRouteNames.AdminViewProviderUser, new { viewModel.ProviderUserId }));

            default:
                throw new InvalidMediatorCodeException(response.Code);
            }
        }
Ejemplo n.º 6
0
        public MediatorResponse <SettingsViewModel> UpdateUser(string username, string ukprn, ProviderUserViewModel providerUserViewModel)
        {
            var result = _providerUserViewModelValidator.Validate(providerUserViewModel);

            var providerSites = GetProviderSites(ukprn);
            var viewModel     = new SettingsViewModel
            {
                ProviderUserViewModel = providerUserViewModel,
                ProviderSites         = providerSites
            };

            if (!result.IsValid)
            {
                return(GetMediatorResponse(ProviderUserMediatorCodes.UpdateUser.FailedValidation, viewModel, result));
            }

            var existingUser = _providerUserProvider.GetUserProfileViewModel(username);

            viewModel.ProviderUserViewModel = _providerUserProvider.SaveProviderUser(username, ukprn, providerUserViewModel);

            if (existingUser != null)
            {
                if (!string.Equals(existingUser.EmailAddress, viewModel.ProviderUserViewModel.EmailAddress, StringComparison.CurrentCultureIgnoreCase))
                {
                    return(GetMediatorResponse(ProviderUserMediatorCodes.UpdateUser.EmailUpdated, viewModel, ProviderUserViewModelMessages.EmailUpdated, UserMessageLevel.Success));
                }
                return(GetMediatorResponse(ProviderUserMediatorCodes.UpdateUser.AccountUpdated, viewModel, ProviderUserViewModelMessages.AccountUpdated, UserMessageLevel.Success));
            }

            return(GetMediatorResponse(ProviderUserMediatorCodes.UpdateUser.Ok, viewModel, ProviderUserViewModelMessages.AccountCreated, UserMessageLevel.Success));
        }