package pt.ulisboa.tecnico.socialsoftware.tutor.teacherdashboard.dto;
import pt.ulisboa.tecnico.socialsoftware.tutor.teacherdashboard.domain.TeacherDashboard;
import pt.ulisboa.tecnico.socialsoftware.tutor.teacherdashboard.domain.QuestionStats;
import java.util.*;
import java.util.stream.*;
import pt.ulisboa.tecnico.socialsoftware.tutor.teacherdashboard.dto.QuestionStatsDto;
import java.util.stream.IntStream;
public class TeacherDashboardDto {
private Integer id;
private Integer numberOfStudents;
private List<QuestionStatsDto> questionStatsDto;
public TeacherDashboardDto() {
}
public List<QuestionStatsDto> getQuestionStatsDto() {
return questionStatsDto;
}
public void setQuestionStatsDto(List<QuestionStatsDto> questionStatsDto) {
this.questionStatsDto = questionStatsDto;
}
public TeacherDashboardDto(TeacherDashboard teacherDashboard) {
this.id = teacherDashboard.getId();
// For the number of students, we consider only active students
this.numberOfStudents = teacherDashboard.getCourseExecution().getNumberOfActiveStudents();
this.questionStatsDto = createAndReturnQuestionStatsDtoList(teacherDashboard.getQuestionStats());
}
public List<QuestionStatsDto> createAndReturnQuestionStatsDtoList(List<QuestionStats> questionStats) {
List<QuestionStatsDto> questionStatsDtoList = new ArrayList<QuestionStatsDto>();
questionStatsDtoList = questionStats.stream()
.map(questionStatsElement -> new QuestionStatsDto(questionStatsElement))
.collect(Collectors.toList());
return questionStatsDtoList;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getNumberOfStudents() {
return numberOfStudents;
}
public void setNumberOfStudents(Integer numberOfStudents) {
this.numberOfStudents = numberOfStudents;
}
@Override
public String toString() {
return "TeacherDashboardDto{" +
"id=" + id +
", numberOfStudents=" + this.getNumberOfStudents() +
"}";
}
}