package uk.ac.ox.oucs.vle.email; import uk.ac.ox.oucs.vle.CourseSignup; 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.*; /** * This is for when a student withdraws from a course, an email is send to all * the administrators. */ public class WithdrawnAdministratorEmailRule extends EmailRule { @Override public boolean matches(StateChange stateChange) { return Status.matches(stateChange.getOldStatus(), ACCEPTED, APPROVED, CONFIRMED) && Status.matches(stateChange.getSignup().getStatus(), WITHDRAWN); } @Override public void perform(StateChange stateChange) { CourseSignup signup = stateChange.getSignup(); for (Person administrator : signup.getGroup().getAdministrators()) { service.sendSignupEmail( administrator.getId(), signup, "withdraw.admin.subject", "withdraw.admin.body", new Object[]{proxy.getCurrentUser().getDisplayName(), proxy.getAdminUrl()}); service.savePlacement(administrator.getId(), proxy.getCurrentPlacementId()); } } }