예제 #1
0
        public Entities.DatabaseEntities.User CreateUser(Entities.ServicesEntities.User user, int[] rolesIds)
        {
            var existingUser = _repository.GetSingle <Entities.DatabaseEntities.User>(u => u.Username == user.Username);

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

            var userEntity = new Entities.DatabaseEntities.User
            {
                Username       = user.Username,
                Email          = user.Email,
                HashedPassword = _encryptionService.EncryptPassword(user.Password)
            };

            if (rolesIds != null && rolesIds.Length > 0)
            {
                foreach (var roleId in rolesIds)
                {
                    AddUserToRole(userEntity, roleId);
                }
            }

            var createdUser = _repository.Insert(userEntity);

            return(createdUser);
        }
예제 #2
0
        private void AddUserToRole(Entities.DatabaseEntities.User user, int roleId)
        {
            var role = _repository.GetSingle <Role>(r => r.Id == roleId);

            if (role == null)
            {
                throw new ArgumentException("Role doesn't exist.");
            }

            user.Roles.Add(role);
        }