package uk.ac.ox.oucs.vle.email;
import uk.ac.ox.oucs.vle.CourseSignupService;
import uk.ac.ox.oucs.vle.CourseSignupService.Status;
import uk.ac.ox.oucs.vle.Person;
import static uk.ac.ox.oucs.vle.CourseSignupService.Status.*;
/**
* Rule for when someone is rejected from attending a module.
*/
public class RejectedEmailRule extends EmailRule {
@Override
public boolean matches(StateChange stateChange) {
return Status.matches(stateChange.getOldStatus(), PENDING, WAITING) &&
Status.matches(stateChange.getSignup().getStatus(), REJECTED);
}
@Override
public void perform(StateChange stateChange) {
service.sendStudentSignupEmail(
stateChange.getSignup(),
"reject-admin.student.subject",
"reject-admin.student.body",
new Object[] {proxy.getCurrentUser().getDisplayName(), proxy.getMyUrl(stateChange.getPlacement())});
Person user = stateChange.getSignup().getUser();
service.savePlacement(user.getId(), stateChange.getPlacement());
}
}