From ad42d5ff1cb9eda921001e0c001af7cf2439675e Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer <paul-christian.volkmer@mni.thm.de> Date: Thu, 28 Feb 2013 12:03:37 +0100 Subject: [PATCH] Add number of sessions to name and short name If the current session is linked to a course and there are other sessions for this course, add a number to the name and short name of the session, indicating which session is ment since all sessions will have the same name and short name. --- .../arsnova/controller/SessionController.java | 23 +++++++++++++++---- .../thm/arsnova/services/ISessionService.java | 3 +++ .../thm/arsnova/services/SessionService.java | 10 ++++++++ 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/thm/arsnova/controller/SessionController.java b/src/main/java/de/thm/arsnova/controller/SessionController.java index c68ee6a91..fdafc5270 100644 --- a/src/main/java/de/thm/arsnova/controller/SessionController.java +++ b/src/main/java/de/thm/arsnova/controller/SessionController.java @@ -18,6 +18,7 @@ */ package de.thm.arsnova.controller; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -36,6 +37,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; +import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.entities.LoggedIn; import de.thm.arsnova.entities.Session; import de.thm.arsnova.entities.User; @@ -91,13 +93,26 @@ public class SessionController extends AbstractController { @ResponseBody @ResponseStatus(HttpStatus.CREATED) public final Session postNewSession(@RequestBody final Session session, final HttpServletResponse response) { + if (session != null && session.isCourseSession()) { + List<Course> courses = new ArrayList<Course>(); + Course course = new Course(); + course.setId(session.getCourseId()); + courses.add(course); + int sessionCount = sessionService.countSessions(courses); + if (sessionCount > 0) { + String appendix = " (" + String.valueOf(sessionCount + 1) + ")"; + session.setName(session.getName() + appendix); + session.setShortName(session.getShortName() + appendix); + } + } Session newSession = sessionService.saveSession(session); - if (session != null) { - return newSession; + + if (newSession == null) { + response.setStatus(HttpStatus.SERVICE_UNAVAILABLE.value()); + return null; } - response.setStatus(HttpStatus.SERVICE_UNAVAILABLE.value()); - return null; + return newSession; } @RequestMapping(value = "/", method = RequestMethod.GET) diff --git a/src/main/java/de/thm/arsnova/services/ISessionService.java b/src/main/java/de/thm/arsnova/services/ISessionService.java index 24641cc7a..17ebdef32 100644 --- a/src/main/java/de/thm/arsnova/services/ISessionService.java +++ b/src/main/java/de/thm/arsnova/services/ISessionService.java @@ -21,6 +21,7 @@ package de.thm.arsnova.services; import java.util.List; +import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.entities.LoggedIn; import de.thm.arsnova.entities.Session; import de.thm.arsnova.entities.User; @@ -41,4 +42,6 @@ public interface ISessionService { LoggedIn registerAsOnlineUser(User user, String sessionkey); int countActiveUsers(String sessionkey); + + int countSessions(List<Course> courses); } diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java index 61a85a0e2..d61533588 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/SessionService.java @@ -32,6 +32,7 @@ import org.springframework.stereotype.Service; import de.thm.arsnova.annotation.Authenticated; import de.thm.arsnova.connector.client.ConnectorClient; +import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.dao.IDatabaseDao; import de.thm.arsnova.entities.LoggedIn; import de.thm.arsnova.entities.Session; @@ -173,4 +174,13 @@ public class SessionService implements ISessionService { return session1.getShortName().compareToIgnoreCase(session2.getShortName()); } } + + @Override + public int countSessions(List<Course> courses) { + List<Session> sessions = databaseDao.getCourseSessions(courses); + if (sessions == null) { + return 0; + } + return sessions.size(); + } } -- GitLab