public User CreateUser(string username, string email, string password, int[] roles)
        {
            var existingUser = _userRepository.GetSingleByUsername(username);

            if (existingUser != null)
            {
                throw new Exception("Username is already in use");
            }

            var passwordSalt = _encryptionServices.CreateSalt();

            var user = new User()
            {
                Username       = username,
                Salt           = passwordSalt,
                Email          = email,
                IsLocked       = false,
                HashedPassword = _encryptionServices.EncryptPassword(password, passwordSalt),
                DateCreated    = DateTime.Now,
            };

            _userRepository.Add(user);
            _unitOfWork.Commit();

            // TODO: Do not store users without roles
            if (roles != null)
            {
                foreach (var role in roles)
                {
                    AddUserToRole(user, role);
                }
            }

            _unitOfWork.Commit();

            return(user);
        }
예제 #2
0
        public User CreateUser(string email, string password)
        {
            var existingUser = GetUserByUserName(email);

            if (existingUser != null)
            {
                throw new Exception("Username is already in use");
            }

            var  passwordSalt = _encryptionService.CreateSalt();
            Guid Id           = Guid.NewGuid();
            var  user         = new User();

            //{
            //    Email = email,
            //    Salt = passwordSalt,
            //    Password = _encryptionService.EncryptPassword(password, passwordSalt),
            //    AuthID = Id,
            //    ApprovedBy = Id,
            //    VerifiedEmail = false,
            //    VerifiedPhone = false,
            //    IsActive = false,
            //    IsDeleted = false,
            //    ModifiedOn = DateTime.Now,
            //    CreatedOn = DateTime.Now
            //};

            _userRepository.Add(user);

            //_unitOfWork.Commit();

            //if (roles != null || roles.Length > 0)
            //{
            //    foreach (var role in roles)
            //    {
            //        addUserToRole(user, role);
            //    }
            //}

            //_unitOfWork.Commit();

            return(user);
        }