}
private FenixCourseEvaluation.WrittenEvaluation getWrittenEvaluationJSON(WrittenEvaluation writtenEvaluation,
Boolean isEnrolled, Student student) {
String name = writtenEvaluation.getPresentationName();
EvaluationType type = writtenEvaluation.getEvaluationType();
String day = dataFormatDay.format(writtenEvaluation.getDay().getTime());
String beginningTime = dataFormatHour.format(writtenEvaluation.getBeginning().getTime());
String endTime = dataFormatHour.format(writtenEvaluation.getEnd().getTime());
FenixPeriod evaluationPeriod =
new FenixPeriod(Joiner.on(" ").join(day, beginningTime), Joiner.on(" ").join(day, endTime));
boolean isEnrolmentPeriod = writtenEvaluation.getIsInEnrolmentPeriod();
final DateTime start = writtenEvaluation.getEnrolmentPeriodStart();
final DateTime end = writtenEvaluation.getEnrolmentPeriodEnd();
final String enrollmentPeriodStart = start == null ? null : start.toString("yyyy-MM-dd HH:mm:ss");
final String enrollmentPeriodEnd = end == null ? null : end.toString("yyyy-MM-dd HH:mm:ss");
Set<ExecutionCourse> courses = new HashSet<>();
String writtenEvaluationId = writtenEvaluation.getExternalId();
if (student != null) {
Space assignedRoom = null;
for (ExecutionCourse executionCourse : writtenEvaluation.getAssociatedExecutionCoursesSet()) {
final Registration registration = executionCourse.getRegistration(student.getPerson());
final Attends attendsByStudent = executionCourse.getAttendsByStudent(student);
if (registration != null || attendsByStudent != null) {
courses.add(executionCourse);
}
}
final WrittenEvaluationEnrolment evalEnrolment = writtenEvaluation.getWrittenEvaluationEnrolmentFor(student);
if (evalEnrolment != null) {
assignedRoom = evalEnrolment.getRoom();
}
if (type.equals(EvaluationType.EXAM_TYPE)) {
return new FenixCourseEvaluation.Exam(writtenEvaluationId, name, evaluationPeriod, isEnrolmentPeriod,
enrollmentPeriodStart, enrollmentPeriodEnd, writtenEvaluation.getAssociatedRooms(), isEnrolled, courses,
assignedRoom);
} else {
return new FenixCourseEvaluation.Test(writtenEvaluationId, name, evaluationPeriod, isEnrolmentPeriod,
enrollmentPeriodStart, enrollmentPeriodEnd, writtenEvaluation.getAssociatedRooms(), isEnrolled, courses,
assignedRoom);
}
}
if (type.equals(EvaluationType.EXAM_TYPE)) {
return new FenixCourseEvaluation.Exam(writtenEvaluationId, name, evaluationPeriod, isEnrolmentPeriod,
enrollmentPeriodStart, enrollmentPeriodEnd, writtenEvaluation.getAssociatedRooms(), isEnrolled, courses);
} else {
return new FenixCourseEvaluation.Test(writtenEvaluationId, name, evaluationPeriod, isEnrolmentPeriod,
enrollmentPeriodStart, enrollmentPeriodEnd, writtenEvaluation.getAssociatedRooms(), isEnrolled, courses);