Example #1
0
        public virtual void Add(User user)
        {
            #region Validate data
            List<DataViolationItem> violations = new List<DataViolationItem>();
            if (_userRepository.Get(user) != null)
            {
                violations.Add(new DataViolationItem("UserName", user.UserName, "DuplicateUserName"));
            }
            if (string.IsNullOrEmpty(user.Password))
            {
                violations.Add(new DataViolationItem("Password", user.Password, "InvalidPassword"));
            }
            if (string.IsNullOrEmpty(user.Email))
            {
                violations.Add(new DataViolationItem("Email", user.Email, "InvalidEmail"));
            }
            if (_userRepository.FindUserByEmail(user.Email) != null)
            {
                violations.Add(new DataViolationItem("Email", user.Email, "DuplicateEmail"));
            }
            if (violations.Count > 0)
            {
                throw new DataViolationException(violations);
            }
            #endregion

            var salt = CryptoHelper.GenerateSalt();
            var encodedPassword = CryptoHelper.HashPassword(user.Password, salt);
            user.Password = encodedPassword;
            user.PasswordSalt = salt;
            _userRepository.Add(user);
        }
Example #2
0
 public virtual void Update(string userName, User newUser)
 {
     var old = Get(userName);
     _userRepository.Update(newUser, old);
 }