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); }
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); }