package fi.otavanopisto.pyramus.json.grading; import java.util.Date; 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.SchoolDAO; import fi.otavanopisto.pyramus.dao.base.SubjectDAO; import fi.otavanopisto.pyramus.dao.grading.GradeDAO; import fi.otavanopisto.pyramus.dao.grading.TransferCreditDAO; import fi.otavanopisto.pyramus.dao.students.StudentDAO; import fi.otavanopisto.pyramus.dao.users.StaffMemberDAO; 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.School; import fi.otavanopisto.pyramus.domainmodel.base.Subject; import fi.otavanopisto.pyramus.domainmodel.grading.Grade; import fi.otavanopisto.pyramus.domainmodel.grading.TransferCredit; import fi.otavanopisto.pyramus.domainmodel.students.Student; import fi.otavanopisto.pyramus.domainmodel.users.StaffMember; import fi.otavanopisto.pyramus.framework.JSONRequestController; import fi.otavanopisto.pyramus.framework.UserRole; public class SaveTransferCreditsJSONRequestController extends JSONRequestController { public void process(JSONRequestContext jsonRequestContext) { StudentDAO studentDAO = DAOFactory.getInstance().getStudentDAO(); StaffMemberDAO staffMemberDAO = DAOFactory.getInstance().getStaffMemberDAO(); GradeDAO gradeDAO = DAOFactory.getInstance().getGradeDAO(); TransferCreditDAO transferCreditDAO = DAOFactory.getInstance().getTransferCreditDAO(); EducationalTimeUnitDAO educationalTimeUnitDAO = DAOFactory.getInstance().getEducationalTimeUnitDAO(); SchoolDAO schoolDAO = DAOFactory.getInstance().getSchoolDAO(); SubjectDAO subjectDAO = DAOFactory.getInstance().getSubjectDAO(); CurriculumDAO curriculumDAO = DAOFactory.getInstance().getCurriculumDAO(); Long studentId = jsonRequestContext.getLong("studentId"); Student student = studentDAO.findById(studentId); int rowCount = jsonRequestContext.getInteger("transferCreditsTable.rowCount"); for (int i = 0; i < rowCount; i++) { String colPrefix = "transferCreditsTable." + i; Long id = jsonRequestContext.getLong(colPrefix + ".creditId"); String courseName = jsonRequestContext.getString(colPrefix + ".courseName"); CourseOptionality courseOptionality = (CourseOptionality) jsonRequestContext.getEnum(colPrefix + ".courseOptionality", CourseOptionality.class); Integer courseNumber = jsonRequestContext.getInteger(colPrefix + ".courseNumber"); Long gradeId = jsonRequestContext.getLong(colPrefix + ".grade"); Long subjectId = jsonRequestContext.getLong(colPrefix + ".subject"); Double courseLength = jsonRequestContext.getDouble(colPrefix + ".courseLength"); Long courseLengthUnitId = jsonRequestContext.getLong(colPrefix + ".courseLengthUnit"); Long schooId = jsonRequestContext.getLong(colPrefix + ".school"); Date date = jsonRequestContext.getDate(colPrefix + ".date"); Long userId = jsonRequestContext.getLong(colPrefix + ".user"); Long curriculumId = jsonRequestContext.getLong(colPrefix + ".curriculum"); Grade grade = gradeDAO.findById(gradeId); Subject subject = subjectDAO.findById(subjectId); EducationalTimeUnit timeUnit = educationalTimeUnitDAO.findById(courseLengthUnitId); School school = schoolDAO.findById(schooId); StaffMember staffMember = staffMemberDAO.findById(userId); Curriculum curriculum = curriculumId != null ? curriculumDAO.findById(curriculumId) : null; TransferCredit transferCredit; if (id != null && id >= 0) { transferCredit = transferCreditDAO.findById(id); transferCreditDAO.update(transferCredit, courseName, courseNumber, courseLength, timeUnit, school, subject, courseOptionality, student, staffMember, grade, date, transferCredit.getVerbalAssessment(), curriculum); } else { transferCredit = transferCreditDAO.create(courseName, courseNumber, courseLength, timeUnit, school, subject, courseOptionality, student, staffMember, grade, date, "", curriculum); } } jsonRequestContext.setRedirectURL(jsonRequestContext.getReferer(true)); } public UserRole[] getAllowedRoles() { return new UserRole[] { UserRole.MANAGER, UserRole.STUDY_PROGRAMME_LEADER, UserRole.ADMINISTRATOR }; } }