From 694dcb43f9dcc071628abffcb169acde31ca28cc Mon Sep 17 00:00:00 2001
From: Paul-Christian Volkmer <paul-christian.volkmer@mni.thm.de>
Date: Wed, 20 Feb 2013 12:28:59 +0100
Subject: [PATCH] Sort list of courses and sessions by name

---
 .../arsnova/controller/CourseController.java  | 25 ++++++++++++++-----
 .../thm/arsnova/services/SessionService.java  | 14 ++++++++++-
 2 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/src/main/java/de/thm/arsnova/controller/CourseController.java b/src/main/java/de/thm/arsnova/controller/CourseController.java
index 7ea631f8..8e77fbda 100644
--- a/src/main/java/de/thm/arsnova/controller/CourseController.java
+++ b/src/main/java/de/thm/arsnova/controller/CourseController.java
@@ -18,6 +18,8 @@
  */
 package de.thm.arsnova.controller;
 
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 
 import org.slf4j.Logger;
@@ -38,14 +40,15 @@ import de.thm.arsnova.services.IUserService;
 @Controller
 public class CourseController extends AbstractController {
 
-	public static final Logger LOGGER = LoggerFactory.getLogger(CourseController.class);
+	public static final Logger LOGGER = LoggerFactory
+			.getLogger(CourseController.class);
 
-	@Autowired(required=false)
+	@Autowired(required = false)
 	private ConnectorClient connectorClient;
 
 	@Autowired
 	private IUserService userService;
-	
+
 	@Autowired
 	private ISessionService sessionService;
 
@@ -53,15 +56,25 @@ public class CourseController extends AbstractController {
 	@ResponseBody
 	public final List<Course> myCourses() {
 		String username = userService.getCurrentUser().getUsername();
-		
+
 		if (username == null) {
 			throw new UnauthorizedException();
 		}
-		
+
 		if (connectorClient == null) {
 			throw new NotFoundException();
 		}
 
-		return connectorClient.getCourses(username).getCourse();
+		List<Course> result = connectorClient.getCourses(username).getCourse();
+		Collections.sort(result, new CourseNameComperator());
+		
+		return result;
+	}
+
+	private class CourseNameComperator implements Comparator<Course> {
+		@Override
+		public int compare(Course course1, Course course2) {
+			return course1.getFullname().compareToIgnoreCase(course2.getFullname());
+		}
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java
index 39525032..c3758e0d 100644
--- a/src/main/java/de/thm/arsnova/services/SessionService.java
+++ b/src/main/java/de/thm/arsnova/services/SessionService.java
@@ -20,6 +20,8 @@
 package de.thm.arsnova.services;
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -89,7 +91,10 @@ public class SessionService implements ISessionService {
 			allAvailableSessions.put(session.get_id(), session);
 		}
 		
-		return new ArrayList<Session>(allAvailableSessions.values());
+		List<Session> result = new ArrayList<Session>(allAvailableSessions.values());
+		Collections.sort(result, new SessionNameComperator());
+		
+		return result;
 	}
 	
 	@Override
@@ -149,4 +154,11 @@ public class SessionService implements ISessionService {
 		Session session = databaseDao.getSessionFromKeyword(sessionkey);
 		return databaseDao.countActiveUsers(session, since);
 	}
+	
+	private class SessionNameComperator implements Comparator<Session> {
+		@Override
+		public int compare(Session session1, Session session2) {
+			return session1.getName().compareToIgnoreCase(session2.getName());
+		}
+	}
 }
-- 
GitLab