package fi.otavanopisto.pyramus.json.settings;
import org.apache.commons.lang.math.NumberUtils;
import fi.internetix.smvc.controllers.JSONRequestContext;
import fi.otavanopisto.pyramus.dao.DAOFactory;
import fi.otavanopisto.pyramus.dao.base.EducationSubtypeDAO;
import fi.otavanopisto.pyramus.dao.base.EducationTypeDAO;
import fi.otavanopisto.pyramus.domainmodel.base.EducationSubtype;
import fi.otavanopisto.pyramus.framework.JSONRequestController;
import fi.otavanopisto.pyramus.framework.UserRole;
public class SaveEducationSubtypesJSONRequestController extends JSONRequestController {
public void process(JSONRequestContext jsonRequestContext) {
EducationTypeDAO educationTypeDAO = DAOFactory.getInstance().getEducationTypeDAO();
EducationSubtypeDAO educationSubtypeDAO = DAOFactory.getInstance().getEducationSubtypeDAO();
int rowCount = NumberUtils.createInteger(jsonRequestContext.getRequest().getParameter("educationSubtypesTable.rowCount")).intValue();
for (int i = 0; i < rowCount; i++) {
String colPrefix = "educationSubtypesTable." + i;
Long educationTypeId = NumberUtils.createLong(jsonRequestContext.getRequest().getParameter(colPrefix + ".educationTypeId"));
Long educationSubtypeId = NumberUtils.createLong(jsonRequestContext.getRequest().getParameter(colPrefix + ".educationSubtypeId"));
String name = jsonRequestContext.getRequest().getParameter(colPrefix + ".name");
String code = jsonRequestContext.getRequest().getParameter(colPrefix + ".code");
boolean modified = NumberUtils.createInteger(jsonRequestContext.getRequest().getParameter(colPrefix + ".modified")) == 1;
if (educationSubtypeId == -1) {
educationSubtypeDAO.create(educationTypeDAO.findById(educationTypeId), name, code);
}
else if (modified) {
EducationSubtype educationSubtype = educationSubtypeDAO.findById(educationSubtypeId);
educationSubtypeDAO.update(educationSubtype, name, code);
}
}
jsonRequestContext.setRedirectURL(jsonRequestContext.getReferer(true));
}
public UserRole[] getAllowedRoles() {
return new UserRole[] { UserRole.MANAGER, UserRole.STUDY_PROGRAMME_LEADER, UserRole.ADMINISTRATOR };
}
}