2020-10-08 16:41:13 +02:00
|
|
|
package com.plannaplan.responses.mappers;
|
|
|
|
|
|
|
|
import java.util.List;
|
2020-10-28 13:44:13 +01:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.Map;
|
2020-10-08 16:41:13 +02:00
|
|
|
|
|
|
|
import com.plannaplan.entities.Assignment;
|
2020-10-28 13:44:13 +01:00
|
|
|
import com.plannaplan.entities.Course;
|
|
|
|
import com.plannaplan.entities.Groups;
|
2020-11-08 17:20:00 +01:00
|
|
|
import com.plannaplan.responses.models.AssignmentResponse;
|
2020-10-28 13:44:13 +01:00
|
|
|
import com.plannaplan.types.GroupType;
|
2020-10-08 16:41:13 +02:00
|
|
|
|
|
|
|
public class AssignmentResponseMappers {
|
|
|
|
|
2020-11-08 17:20:00 +01:00
|
|
|
public static final List<AssignmentResponse> mapToResponse(List<Assignment> assignments) {
|
|
|
|
List<AssignmentResponse> response = new ArrayList<>();
|
2020-10-28 13:44:13 +01:00
|
|
|
HashMap<Course, List<Groups>> courses = new HashMap<>();
|
|
|
|
assignments.stream().forEach((Assignment assignment) -> {
|
|
|
|
final Groups group = assignment.getGroup();
|
|
|
|
final Course course = group.getCourseId();
|
|
|
|
if (courses.get(course) == null) {
|
|
|
|
courses.put(course, new ArrayList<>());
|
|
|
|
}
|
|
|
|
courses.get(course).add(group);
|
|
|
|
});
|
|
|
|
|
|
|
|
for (Map.Entry<Course, List<Groups>> entry : courses.entrySet()) {
|
|
|
|
final Course course = entry.getKey();
|
|
|
|
final List<Groups> courseGroups = entry.getValue();
|
|
|
|
if (courseGroups.size() == 1) {
|
2020-11-08 17:20:00 +01:00
|
|
|
response.add(new AssignmentResponse(course, courseGroups.get(0)));
|
2020-10-28 13:44:13 +01:00
|
|
|
}
|
|
|
|
if (courseGroups.size() == 2) {
|
|
|
|
final Groups lecture = courseGroups.stream().filter(o -> o.getType() == GroupType.LECTURE).findFirst()
|
|
|
|
.get();
|
|
|
|
final Groups classes = courseGroups.stream().filter(o -> o.getType() == GroupType.CLASS).findFirst()
|
|
|
|
.get();
|
2020-11-08 17:20:00 +01:00
|
|
|
response.add(new AssignmentResponse(course, lecture, classes));
|
2020-10-28 13:44:13 +01:00
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return response;
|
2020-10-08 16:41:13 +02:00
|
|
|
}
|
|
|
|
}
|