public void requestTeacherProfile(UserRequest userRequest) throws RequestException {
   List<UserRequest> results = searchTeachingRequest(userRequest.getPerson().getId());
   for (UserRequest request : results) {
     if (request.getStatus().equalsIgnoreCase("ag")) {
       throw new RequestException("errors.request.waiting");
     }
     if (request.getStatus().equalsIgnoreCase("ap")) {
       throw new RequestException("errors.request.approved");
     }
   }
   userRequest.setStatus("ag");
   insertUserRequest(userRequest);
 }
 public void requestAssistance(UserRequest userRequest) throws RequestException {
   List<UserRequest> results =
       searchRequestByUserID(userRequest.getCourse().getId(), userRequest.getPerson().getId());
   for (UserRequest request : results) {
     if (request.getStatus().equalsIgnoreCase("ag")) {
       throw new RequestException("errors.request.waiting");
     }
     if (request.getStatus().equalsIgnoreCase("ap")) {
       throw new RequestException("errors.request.approved");
     }
   }
   userRequest.setStatus("ag");
   insertUserRequest(userRequest);
 }
 public boolean canRequestTeaching(Person person) {
   List<UserRequest> results = searchTeachingRequest(person.getId());
   for (UserRequest request : results) {
     if (request.getStatus().equalsIgnoreCase("ag")) return false;
     if (request.getStatus().equalsIgnoreCase("ap")) return false;
   }
   return true;
 }
 public boolean canRequestAssistance(Person person, Course course) {
   List<UserRequest> results = searchRequestByUserID(course.getId(), person.getId());
   for (UserRequest request : results) {
     if (request.getStatus().equalsIgnoreCase("ag")) return false;
     if (request.getStatus().equalsIgnoreCase("ap")) return false;
   }
   return true;
 }