Revision: 3152
Author: seba.wagner
Date: Wed Mar 17 12:58:25 2010
Log: Add new function to query just the number of users in a Room
http://code.google.com/p/openmeetings/source/detail?r=3152

Added:
/trunk/singlewebapp/src/roomservice/org/openmeetings/axis/services/RoomCountBean.java
Modified:
/trunk/singlewebapp/src/app/org/openmeetings/app/data/conference/Roommanagement.java /trunk/singlewebapp/src/roomservice/org/openmeetings/axis/services/RoomService.java

=======================================
--- /dev/null
+++ /trunk/singlewebapp/src/roomservice/org/openmeetings/axis/services/RoomCountBean.java Wed Mar 17 12:58:25 2010
@@ -0,0 +1,36 @@
+package org.openmeetings.axis.services;
+
+public class RoomCountBean {
+
+       private long roomId;
+       private String roomName;
+       private Integer roomCount;
+       private Integer maxUser;
+
+       public long getRoomId() {
+               return roomId;
+       }
+       public void setRoomId(long roomId) {
+               this.roomId = roomId;
+       }
+       public String getRoomName() {
+               return roomName;
+       }
+       public void setRoomName(String roomName) {
+               this.roomName = roomName;
+       }
+       public Integer getRoomCount() {
+               return roomCount;
+       }
+       public void setRoomCount(Integer roomCount) {
+               this.roomCount = roomCount;
+       }
+       public Integer getMaxUser() {
+               return maxUser;
+       }
+       public void setMaxUser(Integer maxUser) {
+               this.maxUser = maxUser;
+       }
+
+
+}
=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/app/data/conference/Roommanagement.java Sun Feb 7 04:21:38 2010 +++ /trunk/singlewebapp/src/app/org/openmeetings/app/data/conference/Roommanagement.java Wed Mar 17 12:58:25 2010
@@ -425,6 +425,55 @@
                return null;
        }

+       public List<Rooms> getRoomsByIds(List<Integer> roomIds){
+               try {
+                       log.error("getRoomsByIds: roomtypes_id "+roomIds);
+
+                       if (roomIds == null || roomIds.size() == 0) {
+                               return new LinkedList<Rooms>();
+                       }
+
+                       String queryString = "SELECT r from Rooms r " +
+                                                                               
"WHERE ";
+
+                       queryString += "(";
+
+                       int i=0;
+                       for (Integer room_id : roomIds) {
+                               if (i != 0) {
+                                       queryString += " OR ";
+                               }
+                               queryString += " rooms_id = " + room_id;
+                               i++;
+                       }
+
+                       queryString += ")";
+
+                       log.error("### getPublicRooms: create Query 
"+queryString);
+
+                       Object idf = HibernateUtil.createSession();
+                       Session session = HibernateUtil.getSession();
+                       Transaction tx = session.beginTransaction();
+
+                       Query q = session.createQuery(queryString);
+
+                       List ll = q.list();
+                       tx.commit();
+                       HibernateUtil.closeSession(idf);
+
+                       log.error("### getPublicRooms: size Room List 
"+ll.size());
+
+                       return ll;
+
+
+               } catch (HibernateException ex) {
+                       log.error("[getRoomsByIds] ", ex);
+               } catch (Exception ex2) {
+                       log.error("[getRoomsByIds] ", ex2);
+               }
+               return null;
+       }
+
        public List<Rooms> getPublicRoomsWithoutType(long user_level){
                try {
                        if 
(AuthLevelmanagement.getInstance().checkUserLevel(user_level)){
=======================================
--- /trunk/singlewebapp/src/roomservice/org/openmeetings/axis/services/RoomService.java Tue Mar 16 15:04:26 2010 +++ /trunk/singlewebapp/src/roomservice/org/openmeetings/axis/services/RoomService.java Wed Mar 17 12:58:25 2010
@@ -2,6 +2,7 @@

 import java.util.Calendar;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -25,6 +26,7 @@
 import org.openmeetings.app.hibernate.beans.rooms.Rooms;
 import org.openmeetings.app.hibernate.beans.rooms.Rooms_Organisation;
 import org.openmeetings.app.remote.ConferenceService;
+import org.openmeetings.app.remote.red5.ClientListManager;
 import org.openmeetings.utils.math.CalendarPatterns;

 public class RoomService {
@@ -191,6 +193,83 @@
                        throw new AxisFault(err.getMessage());
                }
        }
+
+ public RoomCountBean[] getRoomCounters(String SID, Integer roomId1, Integer roomId2, Integer roomId3, Integer roomId4 + , Integer roomId5, Integer roomId6, Integer roomId7, Integer roomId8, Integer roomId9, Integer roomId10) throws AxisFault {
+               try {
+                       Long users_id = 
Sessionmanagement.getInstance().checkSession(SID);
+ Long user_level = Usermanagement.getInstance().getUserLevelByID(users_id);
+
+                       if 
(AuthLevelmanagement.getInstance().checkAdminLevel(user_level)){
+
+                               LinkedList<Integer> roomIds = new 
LinkedList<Integer>();
+
+                               if (roomId1 != null && roomId1 > 0) {
+                                       roomIds.push(roomId1);
+                               }
+                               if (roomId2 != null && roomId2 > 0) {
+                                       log.debug("roomId2 :: "+roomId2);
+                                       roomIds.push(roomId2);
+                               }
+                               if (roomId3 != null && roomId3 > 0) {
+                                       roomIds.push(roomId3);
+                               }
+                               if (roomId4 != null && roomId4 > 0) {
+                                       roomIds.push(roomId4);
+                               }
+                               if (roomId5 != null && roomId5 > 0) {
+                                       roomIds.push(roomId5);
+                               }
+                               if (roomId6 != null && roomId6 > 0) {
+                                       roomIds.push(roomId6);
+                               }
+                               if (roomId7 != null && roomId7 > 0) {
+                                       roomIds.push(roomId7);
+                               }
+                               if (roomId8 != null && roomId8 > 0) {
+                                       roomIds.push(roomId8);
+                               }
+                               if (roomId9 != null && roomId9 > 0) {
+                                       roomIds.push(roomId9);
+                               }
+                               if (roomId10 != null && roomId10 > 0) {
+                                       roomIds.push(roomId10);
+                               }
+
+ List<Rooms> rooms = Roommanagement.getInstance().getRoomsByIds(roomIds);
+
+                               RoomCountBean[] roomsArray = new 
RoomCountBean[rooms.size()];
+
+                               int i = 0;
+                               for (Rooms room : rooms) {
+
+ HashMap<String,RoomClient> map = ClientListManager.getInstance().getClientListByRoom(room.getRooms_id());
+
+                                       //room.setCurrentusers(new 
LinkedList<RoomClient>());
+
+// for (Iterator<String> iter = map.keySet().iterator(); iter.hasNext(); ) {
+//                                             
room.getCurrentusers().add(map.get(iter.next()));
+//                                     }
+
+                                       RoomCountBean rCountBean = new 
RoomCountBean();
+                                       
rCountBean.setRoomId(room.getRooms_id());
+                                       rCountBean.setRoomName(room.getName());
+                                       
rCountBean.setMaxUser(room.getNumberOfPartizipants().intValue());
+                                       rCountBean.setRoomCount(map.size());
+
+                                       roomsArray[i] = rCountBean;
+                                       i++;
+                               }
+
+                               return roomsArray;
+                       }
+
+               } catch (Exception err) {
+                       log.error("[getRoomTypes]",err);
+                       throw new AxisFault(err.getMessage());
+               }
+               return null;
+       }

        public Rooms getRoomById(String SID, long rooms_id){
                return ConferenceService.getInstance().getRoomById(SID, 
rooms_id);

--
You received this message because you are subscribed to the Google Groups 
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/openmeetings-dev?hl=en.

Reply via email to