From 0d50fb1531c32cc83f3f020cdc36cd1edb192e46 Mon Sep 17 00:00:00 2001 From: Christoph Thelen <christoph.thelen@mni.thm.de> Date: Sat, 18 Apr 2015 16:38:47 +0200 Subject: [PATCH] Delete sort order documents when deleting a session --- .../java/de/thm/arsnova/dao/IDatabaseDao.java | 4 +-- .../thm/arsnova/services/SessionService.java | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java index 97666eb0..8501e053 100644 --- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java +++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java @@ -29,9 +29,9 @@ import de.thm.arsnova.entities.LoggedIn; import de.thm.arsnova.entities.Question; import de.thm.arsnova.entities.Session; import de.thm.arsnova.entities.SessionInfo; +import de.thm.arsnova.entities.SortOrder; import de.thm.arsnova.entities.Statistics; import de.thm.arsnova.entities.User; -import de.thm.arsnova.entities.SortOrder; import de.thm.arsnova.entities.transport.ImportExportSession; public interface IDatabaseDao { @@ -204,7 +204,7 @@ public interface IDatabaseDao { SortOrder createOrUpdateSortOrder(SortOrder sortOrder); - SortOrder getSortOrder(String sessionkey, String questionVariant, String subject); + SortOrder getSortOrder(String sessionId, String questionVariant, String subject); void deleteSortOrder(SortOrder sortOrder); diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java index caa20313..b7087d91 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/SessionService.java @@ -18,6 +18,7 @@ package de.thm.arsnova.services; import java.io.Serializable; +import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.UUID; @@ -41,6 +42,7 @@ import de.thm.arsnova.entities.LearningProgressOptions; import de.thm.arsnova.entities.Session; import de.thm.arsnova.entities.SessionFeature; import de.thm.arsnova.entities.SessionInfo; +import de.thm.arsnova.entities.SortOrder; import de.thm.arsnova.entities.User; import de.thm.arsnova.entities.transport.ImportExportSession; import de.thm.arsnova.entities.transport.LearningProgressValues; @@ -327,6 +329,29 @@ public class SessionService implements ISessionService, ApplicationEventPublishe @PreAuthorize("isAuthenticated() and hasPermission(#sessionkey, 'session', 'owner')") public void deleteSession(final String sessionkey) { final Session session = databaseDao.getSessionFromKeyword(sessionkey); + + List<String> prepSubjects = databaseDao.getSubjects(session, "preparation"); + if (prepSubjects == null) { + prepSubjects = new ArrayList<String>(); + } else { + prepSubjects.add(""); + } + + List<String> lectureSubjects = databaseDao.getSubjects(session, "lecture"); + if (lectureSubjects == null) { + lectureSubjects = new ArrayList<String>(); + } else { + lectureSubjects.add(""); + } + + for (String subject : prepSubjects) { + SortOrder sortOrder = databaseDao.getSortOrder(session.get_id(), "preparation", subject); + databaseDao.deleteSortOrder(sortOrder); + } + for (String subject : lectureSubjects) { + SortOrder sortOrder = databaseDao.getSortOrder(session.get_id(), "lecture", subject); + databaseDao.deleteSortOrder(sortOrder); + } databaseDao.deleteAllQuestionsWithAnswers(session); databaseDao.deleteSession(session); -- GitLab