package edu.ualberta.med.biobank.common.action.request;
import java.util.List;
import edu.ualberta.med.biobank.common.action.Action;
import edu.ualberta.med.biobank.common.action.ActionContext;
import edu.ualberta.med.biobank.common.action.EmptyResult;
import edu.ualberta.med.biobank.common.action.exception.ActionException;
import edu.ualberta.med.biobank.common.util.RequestSpecimenState;
import edu.ualberta.med.biobank.model.PermissionEnum;
import edu.ualberta.med.biobank.model.RequestSpecimen;
public class RequestStateChangeAction implements Action<EmptyResult> {
/**
*
*/
private static final long serialVersionUID = 3825968229912773240L;
private List<Integer> rSpecIds;
private RequestSpecimenState state;
public RequestStateChangeAction(List<Integer> rSpecIds,
RequestSpecimenState state) {
this.rSpecIds = rSpecIds;
this.state = state;
}
@Override
public boolean isAllowed(ActionContext context) throws ActionException {
return PermissionEnum.REQUEST_PROCESS.isAllowed(context.getUser());
}
@Override
public EmptyResult run(ActionContext context) throws ActionException {
for (Integer id : rSpecIds) {
RequestSpecimen rs = context.get(RequestSpecimen.class, id);
rs.setState(state.getId());
context.getSession().saveOrUpdate(rs);
}
return new EmptyResult();
}
}