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 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();
}
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;
}
public void updateQuestionStats(List<QuestionStats> updatedQuestionStats) {
IntStream.range(0, questionStatsDto.size())
.forEach(i -> questionStatsDto.get(i).updateQuestionStats(updatedQuestionStats.get(i)));
}
@Override
public String toString() {
return "TeacherDashboardDto{" +
"id=" + id +
", numberOfStudents=" + this.getNumberOfStudents() +
"}";
}
}