package fi.otavanopisto.pyramus.json.settings; import fi.internetix.smvc.controllers.JSONRequestContext; import fi.otavanopisto.pyramus.dao.DAOFactory; import fi.otavanopisto.pyramus.dao.base.CurriculumDAO; import fi.otavanopisto.pyramus.dao.base.EducationalTimeUnitDAO; import fi.otavanopisto.pyramus.dao.base.SubjectDAO; import fi.otavanopisto.pyramus.dao.grading.TransferCreditTemplateCourseDAO; import fi.otavanopisto.pyramus.dao.grading.TransferCreditTemplateDAO; import fi.otavanopisto.pyramus.domainmodel.base.CourseOptionality; import fi.otavanopisto.pyramus.domainmodel.base.Curriculum; import fi.otavanopisto.pyramus.domainmodel.base.EducationalTimeUnit; import fi.otavanopisto.pyramus.domainmodel.base.Subject; import fi.otavanopisto.pyramus.domainmodel.grading.TransferCreditTemplate; import fi.otavanopisto.pyramus.framework.JSONRequestController; import fi.otavanopisto.pyramus.framework.UserRole; public class CreateTransferCreditTemplateJSONRequestController extends JSONRequestController { public void process(JSONRequestContext jsonRequestContext) { TransferCreditTemplateDAO transferCreditTemplateDAO = DAOFactory.getInstance().getTransferCreditTemplateDAO(); TransferCreditTemplateCourseDAO transferCreditTemplateCourseDAO = DAOFactory.getInstance().getTransferCreditTemplateCourseDAO(); EducationalTimeUnitDAO educationalTimeUnitDAO = DAOFactory.getInstance().getEducationalTimeUnitDAO(); SubjectDAO subjectDAO = DAOFactory.getInstance().getSubjectDAO(); CurriculumDAO curriculumDAO = DAOFactory.getInstance().getCurriculumDAO(); String name = jsonRequestContext.getString("name"); Long templateCurriculumId = jsonRequestContext.getLong("curriculum"); Curriculum templateCurriculum = templateCurriculumId != null ? curriculumDAO.findById(templateCurriculumId) : null; TransferCreditTemplate transferCreditTemplate = transferCreditTemplateDAO.create(name, templateCurriculum); int rowCount = jsonRequestContext.getInteger("coursesTable.rowCount"); for (int i = 0; i < rowCount; i++) { String colPrefix = "coursesTable." + i; String courseName = jsonRequestContext.getString(colPrefix + ".courseName"); CourseOptionality courseOptionality = (CourseOptionality) jsonRequestContext.getEnum(colPrefix + ".courseOptionality", CourseOptionality.class); Integer courseNumber = jsonRequestContext.getInteger(colPrefix + ".courseNumber"); Double courseLength = jsonRequestContext.getDouble(colPrefix + ".courseLength"); Long subjectId = jsonRequestContext.getLong(colPrefix + ".subject"); Long courseLengthUnitId = jsonRequestContext.getLong(colPrefix + ".courseLengthUnit"); Long curriculumId = jsonRequestContext.getLong(colPrefix + ".curriculum"); Subject subject = subjectDAO.findById(subjectId); EducationalTimeUnit courseLengthUnit = educationalTimeUnitDAO.findById(courseLengthUnitId); Curriculum curriculum = curriculumId != null ? curriculumDAO.findById(curriculumId) : null; transferCreditTemplateCourseDAO.create(transferCreditTemplate, courseName, courseNumber, courseOptionality, courseLength, courseLengthUnit, subject, curriculum); } String redirectURL = jsonRequestContext.getRequest().getContextPath() + "/settings/edittransfercredittemplate.page?transferCreditTemplate=" + transferCreditTemplate.getId(); jsonRequestContext.setRedirectURL(redirectURL); } public UserRole[] getAllowedRoles() { return new UserRole[] { UserRole.MANAGER, UserRole.STUDY_PROGRAMME_LEADER, UserRole.ADMINISTRATOR }; } }