/// <summary> /// The ExecuteStrategy method. /// Contains the logic to validate domain models for creating an individual user. /// <para> /// @author: Jennifer Nguyen /// @updated: 03/13/2018 /// </para> /// </summary> /// <returns>A boolean</returns> public ResponseDto <bool> ExecuteStrategy() { ResponseDto <bool> result; var validationWrappers = new List <IValidationWrapper>() { new ValidationWrapper <UserAccount>(_userAccount, "CreateUser", new UserAccountValidator()), new ValidationWrapper <PasswordSalt>(_passwordSalt, new PasswordSaltValidator()), new ValidationWrapper <UserProfile>(_userProfile, "CreateUser", new UserProfileValidator()), new ValidationWrapper <UserClaims>(_userClaims, new ClaimsValidator()) }; foreach (var securityQuestion in _securityQuestions) { validationWrappers.Add(new ValidationWrapper <SecurityQuestion>(securityQuestion, "CreateUser", _securityQuestionValidator)); } foreach (var securityAnswerSalt in _securityAnswerSalts) { validationWrappers.Add(new ValidationWrapper <SecurityAnswerSalt>(securityAnswerSalt, _securityAnswerSaltValidator)); } foreach (var validationWrapper in validationWrappers) { result = validationWrapper.ExecuteValidator(); if (!result.Data) { result.Error = GeneralErrorMessages.GENERAL_ERROR; return(result); } } // Validate username and display name are not equal result = _userValidator.CheckIfUsernameEqualsDisplayName(_userAccount.Username, _userProfile.DisplayName); if (result.Data) { result.Error = GeneralErrorMessages.GENERAL_ERROR; return(result); } // Validate user does not exist result = _userValidator.CheckIfUserExists(_userAccount.Username); if (result.Data) { result.Error = GeneralErrorMessages.GENERAL_ERROR; return(result); } return(new ResponseDto <bool>() { Data = true }); }
public ResponseDto <bool> ExecuteStrategy() { // Will validate the username and new username var validationWrappers = new List <IValidationWrapper>() { new ValidationWrapper <EditUserDto>(_editUserDto, "EditUsername", _editUserDtoValidator), }; // Goes through each validation in the validation wrapper. foreach (var validationWrapper in validationWrappers) { var result = validationWrapper.ExecuteValidator(); if (!result.Data) { return(result); } } // Validator to check if user exists var userValidator = new UserValidator(); if (userValidator.CheckIfUserExists(_editUserDto.Username).Data == false) { return(new ResponseDto <bool> { Data = false, Error = ValidationErrorMessages.USER_DOES_NOT_EXIST }); } //Check if new display name is null if (_editUserDto.NewDisplayName != null) { //Checks if username is equal to displayname if (userValidator.CheckIfUsernameEqualsDisplayName(_editUserDto.Username, _editUserDto.NewDisplayName).Data == true) { return(new ResponseDto <bool> { Data = false, Error = ValidationErrorMessages.USERNAME_IS_EQUAL_TO_DISPLAYNAME }); } } return(new ResponseDto <bool>() { Data = true }); }
/// <summary> /// The ExecuteStrategy method. /// Contains the logic to validate a data transfer object for creating an individual user. /// <para> /// @author: Jennifer Nguyen /// @updated: 03/20/2018 /// </para> /// </summary> /// <returns>ResponseDto</returns> public ResponseDto <bool> ExecuteStrategy() { ResponseDto <bool> result; var validationWrappers = new List <IValidationWrapper>() { new ValidationWrapper <UserAccountDto>(_registerUserDto.UserAccountDto, "CreateUser", new UserAccountDtoValidator()), new ValidationWrapper <UserProfileDto>(_registerUserDto.UserProfileDto, "CreateUser", new UserProfileDtoValidator()) }; foreach (var securityQuestionDto in _registerUserDto.SecurityQuestionDtos) { validationWrappers.Add(new ValidationWrapper <SecurityQuestionDto>(securityQuestionDto, "CreateUser", _securityQuestionDtoValidator)); } foreach (var validationWrapper in validationWrappers) { result = validationWrapper.ExecuteValidator(); if (!result.Data) { return(result); } } // Validate username and display name are not equal result = _userValidator.CheckIfUsernameEqualsDisplayName(_registerUserDto.UserAccountDto.Username, _registerUserDto.UserProfileDto.DisplayName); if (result.Data) { if (result.Error == null) { result.Error = ValidationErrorMessages.USERNAME_IS_EQUAL_TO_DISPLAYNAME; } result.Data = false; return(result); } return(new ResponseDto <bool>() { Data = true }); }
/// <summary> /// The ExecuteStrategy method. /// Contains the logic to validate a data transfer object for creating an individual user. /// <para> /// @author: Jennifer Nguyen /// @updated: 03/20/2018 /// </para> /// </summary> /// <returns>ResponseDto</returns> public ResponseDto <bool> ExecuteStrategy() { ResponseDto <bool> result; var validationWrappers = new List <IValidationWrapper>() { new ValidationWrapper <UserAccountDto>(_registerUserDto.UserAccountDto, "CreateUser", new UserAccountDtoValidator()), new ValidationWrapper <UserProfileDto>(_registerUserDto.UserProfileDto, "CreateUser", new UserProfileDtoValidator()) }; foreach (var securityQuestionDto in _registerUserDto.SecurityQuestionDtos) { validationWrappers.Add(new ValidationWrapper <SecurityQuestionDto>(securityQuestionDto, "CreateUser", _securityQuestionDtoValidator)); } foreach (var validationWrapper in validationWrappers) { result = validationWrapper.ExecuteValidator(); if (!result.Data) { return(result); } } // Validate username and display name are not equal result = _userValidator.CheckIfUsernameEqualsDisplayName(_registerUserDto.UserAccountDto.Username, _registerUserDto.UserProfileDto.DisplayName); if (result.Data) { if (result.Error == null) { result.Error = ValidationErrorMessages.USERNAME_IS_EQUAL_TO_DISPLAYNAME; } result.Data = false; return(result); } // Validate user does not exist result = _userValidator.CheckIfUserExists(_registerUserDto.UserAccountDto.Username); if (result.Data) { if (result.Error == null) { result.Error = UserManagementErrorMessages.USER_EXISTS; } result.Data = false; return(result); } // Validate password has not been previously breached. result = _passwordValidator.IsPasswordValid(_registerUserDto.UserAccountDto.Password); if (!result.Data) { if (result.Error == null) { result.Error = ValidationErrorMessages.PASSWORD_BREACHED; } return(result); } return(new ResponseDto <bool>() { Data = true }); }