private User HashPasswordAndCreateUser(UserSignUpRequest request)
 {
     request.Password.Hash(
         hashingService: hashingService,
         securePseudoRandomGenerator: securePseudoRandomGenerator);
     return(User.Create(email: request.Email, password: request.Password));
 }
        public CreationResult <User, SignUpError> Execute(UserSignUpRequest request)
        {
            if (userRepository.Exist(email: request.Email))
            {
                return(CreationResult <User, SignUpError> .CreateInvalidResult(SignUpError.UserAlreadyExist));
            }
            var user = HashPasswordAndCreateUser(request);

            userRepository.Create(user);
            return(CreationResult <User, SignUpError> .CreateValidResult(user));
        }
Пример #3
0
        public static RequestValidationResult <UserSignUpRequest, Error> Create(
            string email,
            string password)
        {
            CreationResult <Email, Error>    emailCreationResult    = Email.CreateAndValidate(value: email);
            CreationResult <Password, Error> passwordCreationResult = Password.CreateAndValidate(value: password);

            var errors = BuilValidationErrorsFrom <Email, Error>(creationResult: emailCreationResult, fieldId: nameof(Email))
                         .Concat(BuilValidationErrorsFrom <Password, Error>(creationResult: passwordCreationResult, fieldId: nameof(Password)))
                         .ToList();

            if (errors.Any())
            {
                return(RequestValidationResult <UserSignUpRequest, Error> .CreateInvalidResult(
                           errors : errors.AsReadOnly()
                           ));
            }

            UserSignUpRequest request = new UserSignUpRequest(
                email: emailCreationResult.Result,
                password: passwordCreationResult.Result);

            return(RequestValidationResult <UserSignUpRequest, Error> .CreateValidResult(result : request));
        }