示例#1
0
        public User CreateUser(User user)
        {
            if (user == null)
            {
                throw new ArgumentException("User is missing");
            }
            if (string.IsNullOrEmpty(user.EmailAddress))
            {
                throw new ArgumentException("EmailAddress address is missing");
            }
            if (!_regexUtility.IsEmailValid(user.EmailAddress))
            {
                throw new ArgumentException("EmailAddress address is invalid");
            }
            if (string.IsNullOrEmpty(user.UserName))
            {
                throw new ArgumentException("UserName is missing");
            }
            if (string.IsNullOrEmpty(user.EncryptedPassword))
            {
                throw new ArgumentException("Password is missing");
            }

            try
            {
                if (user.Status == UserStatus.Unverified)
                {
                    UserVerification userVerification = _userVerificationFactory.Create();
                    user.UserVerifications = new List <UserVerification>();
                    user.UserVerifications.Add(userVerification);
                }
                _unitOfWork.Users.Add(user);
                _unitOfWork.Commit();
                return(user);
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "Failed to create user with parameters: UserName={0}, EmailAddress={1}, TypeOfUser={2}", user.UserName, user.EmailAddress, user.TypeOfUser);
                return(null);
            }
        }