diff --git a/src/main/java/de/thm/arsnova/domain/CourseScore.java b/src/main/java/de/thm/arsnova/domain/CourseScore.java index 1373028512330dcfbef98de082fe4d6e43634b14..54008a2d8b47640f2a4a1ed7e3130a3c7df9e3c2 100644 --- a/src/main/java/de/thm/arsnova/domain/CourseScore.java +++ b/src/main/java/de/thm/arsnova/domain/CourseScore.java @@ -23,6 +23,8 @@ import java.util.Iterator; import java.util.Map; import java.util.Set; +import de.thm.arsnova.entities.User; + public class CourseScore implements Iterable<QuestionScore> { private final Map<String, QuestionScore> scores = new HashMap<String, QuestionScore>(); @@ -61,6 +63,14 @@ public class CourseScore implements Iterable<QuestionScore> { return score; } + public double getTotalUserScore(User user) { + int score = 0; + for (QuestionScore questionScore : this) { + score += questionScore.getTotalUserScore(user); + } + return score; + } + public int getTotalUserCount() { Set<String> users = new HashSet<String>(); for (QuestionScore questionScore : this) { diff --git a/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java b/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java index be968bff83b08dd4a97caf20e734aba3121dcf37..c7168bc0c05dee16423a4e4d7a847aae24db3eb2 100644 --- a/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java +++ b/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java @@ -56,7 +56,7 @@ public class PointBasedLearningProgress implements LearningProgress { int courseProgress = calculateCourseScore(courseScore); final double courseMaximumValue = courseScore.getMaximumScore(); - final double userTotalValue = courseScore.getTotalUserScore(); + final double userTotalValue = courseScore.getTotalUserScore(user); if (courseMaximumValue == 0) { return new AbstractMap.SimpleEntry<Integer, Integer>(0, courseProgress); diff --git a/src/main/java/de/thm/arsnova/domain/QuestionScore.java b/src/main/java/de/thm/arsnova/domain/QuestionScore.java index 3aceb3e97b79a7351cdc946569b7a96477f1cdce..4584d509b00e7df5c02756f37e944404891d7f22 100644 --- a/src/main/java/de/thm/arsnova/domain/QuestionScore.java +++ b/src/main/java/de/thm/arsnova/domain/QuestionScore.java @@ -22,6 +22,8 @@ import java.util.Iterator; import java.util.List; import java.util.Set; +import de.thm.arsnova.entities.User; + public class QuestionScore implements Iterable<UserScore> { private String questionId; @@ -56,6 +58,16 @@ public class QuestionScore implements Iterable<UserScore> { return totalScore; } + public int getTotalUserScore(User user) { + int totalScore = 0; + for (UserScore score : userScores) { + if (score.isUser(user)) { + totalScore += score.getScore(); + } + } + return totalScore; + } + public int getUserCount() { return userScores.size(); }