package fi.otavanopisto.pyramus.views.system.setupwizard;
import java.util.List;
import fi.internetix.smvc.controllers.PageRequestContext;
import fi.otavanopisto.pyramus.dao.DAOFactory;
import fi.otavanopisto.pyramus.dao.base.EducationTypeDAO;
import fi.otavanopisto.pyramus.dao.base.SubjectDAO;
import fi.otavanopisto.pyramus.domainmodel.base.EducationType;
import fi.otavanopisto.pyramus.util.JSONArrayExtractor;
public class SubjectsSetupWizardViewController extends SetupWizardController {
public SubjectsSetupWizardViewController() {
super("subjects");
}
@Override
public void setup(PageRequestContext requestContext) throws SetupWizardException {
EducationTypeDAO educationTypeDAO = DAOFactory.getInstance().getEducationTypeDAO();
List<EducationType> educationTypes = educationTypeDAO.listUnarchived();
this.setJsDataVariable(requestContext, "educationTypes", new JSONArrayExtractor("name", "id").extractString(educationTypes));
}
@Override
public void save(PageRequestContext requestContext) throws SetupWizardException {
SubjectDAO subjectDAO = DAOFactory.getInstance().getSubjectDAO();
EducationTypeDAO educationTypeDAO = DAOFactory.getInstance().getEducationTypeDAO();
int rowCount = requestContext.getInteger("subjectsTable.rowCount");
for (int i = 0; i < rowCount; i++) {
String colPrefix = "subjectsTable." + i;
String name = requestContext.getString(colPrefix + ".name");
String code = requestContext.getString(colPrefix + ".code");
Long educationTypeId = requestContext.getLong(colPrefix + ".educationTypeId");
EducationType educationType = null;
if (educationTypeId != null) {
educationType = educationTypeDAO.findById(educationTypeId);
}
subjectDAO.create(code, name, educationType);
}
}
@Override
public boolean isInitialized(PageRequestContext requestContext) throws SetupWizardException {
SubjectDAO subjectDAO = DAOFactory.getInstance().getSubjectDAO();
return !subjectDAO.listUnarchived().isEmpty();
}
}