Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml =================================================================== diff -u -r3438d5b8ee54bba2e782f62d77db620df3e0faef -r5176a39390628de74ff3c3ba5bab716164dbdb42 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml (.../monitoringApplicationContext.xml) (revision 3438d5b8ee54bba2e782f62d77db620df3e0faef) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml (.../monitoringApplicationContext.xml) (revision 5176a39390628de74ff3c3ba5bab716164dbdb42) @@ -43,6 +43,7 @@ + Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java =================================================================== diff -u -rabe8b6d5222e4efc0e5bb332066d481f50d38e8c -r5176a39390628de74ff3c3ba5bab716164dbdb42 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision abe8b6d5222e4efc0e5bb332066d481f50d38e8c) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision 5176a39390628de74ff3c3ba5bab716164dbdb42) @@ -33,6 +33,7 @@ import org.lamsfoundation.lams.learningdesign.GroupingActivity; import org.lamsfoundation.lams.learningdesign.exception.LearningDesignProcessorException; import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.lesson.service.LessonServiceException; import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException; @@ -389,7 +390,7 @@ * @param groupingActivity * @param groups list of group information. */ - public void performChosenGrouping(GroupingActivity groupingActivity, List groups); + public void performChosenGrouping(GroupingActivity groupingActivity, List groups) throws LessonServiceException; //--------------------------------------------------------------------- // Preview Methods Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -r0ea73ee29a582fe2f120a3d5c87fe50b89cfb57d -r5176a39390628de74ff3c3ba5bab716164dbdb42 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 0ea73ee29a582fe2f120a3d5c87fe50b89cfb57d) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 5176a39390628de74ff3c3ba5bab716164dbdb42) @@ -56,13 +56,15 @@ import org.lamsfoundation.lams.learningdesign.dao.ITransitionDAO; import org.lamsfoundation.lams.learningdesign.dto.ProgressActivityDTO; import org.lamsfoundation.lams.learningdesign.exception.LearningDesignProcessorException; +import org.lamsfoundation.lams.learningdesign.service.ILearningDesignService; import org.lamsfoundation.lams.lesson.LearnerProgress; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.LessonClass; import org.lamsfoundation.lams.lesson.dao.ILessonClassDAO; import org.lamsfoundation.lams.lesson.dao.ILessonDAO; import org.lamsfoundation.lams.lesson.dto.LessonDetailsDTO; import org.lamsfoundation.lams.lesson.service.ILessonService; +import org.lamsfoundation.lams.lesson.service.LessonServiceException; import org.lamsfoundation.lams.monitoring.MonitoringConstants; import org.lamsfoundation.lams.tool.ToolSession; import org.lamsfoundation.lams.tool.exception.DataMissingException; @@ -133,7 +135,8 @@ private Scheduler scheduler; private ApplicationContext applicationContext; private MessageService messageService; - + private ILearningDesignService learningDesignService; + //--------------------------------------------------------------------- // Inversion of Control Methods - Method injection //--------------------------------------------------------------------- @@ -256,11 +259,15 @@ this.scheduler = scheduler; } + public void setLearningDesignService(ILearningDesignService learningDesignService) { + this.learningDesignService = learningDesignService; + } + //--------------------------------------------------------------------- // Service Methods //--------------------------------------------------------------------- - /** Checks whether the user is a staff member for the lesson or the creator of the lesson. + /** Checks whether the user is a staff member for the lesson or the creator of the lesson. * If not, throws a UserAccessDeniedException exception */ private void checkOwnerOrStaffMember(Integer userId, Lesson lesson, String actionDescription) { User user = userManagementService.getUserById(userId); @@ -774,9 +781,11 @@ //group does not exist if(grouping.isRandomGrouping()){ //for random grouping, create then complete it. Continue - learnerService.performGrouping(lessonId, groupActivity); -// grouping = groupActivity.getCreateGrouping(); -// myGroup = grouping.getGroupBy(learner); + try { + lessonService.performGrouping(lessonId, groupActivity,learner); + } catch (LessonServiceException e) { + stopReason = "Force complete stop at non-grouped grouping activity [" + groupActivity + "] due to exception "+e.getMessage(); + } learnerService.completeActivity(learner.getUserId(),activity,lessonId); log.debug("Grouping activity [" + activity.getActivityId() + "] is completed."); }else{ @@ -1136,9 +1145,10 @@ } /** - * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#performChosenGrouping(GroupingActivity,java.util.List) + * @throws LessonServiceException + * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#performChosenGrouping(GroupingActivity,java.util.List) */ - public void performChosenGrouping(GroupingActivity groupingActivity, List groups) { + public void performChosenGrouping(GroupingActivity groupingActivity, List groups) throws LessonServiceException { Grouping grouping = groupingActivity.getCreateGrouping(); if(!grouping.isChosenGrouping()){ @@ -1174,7 +1184,7 @@ } log.debug("Performing grouping for " + groupName + "..."); - grouping.doGrouping(groupName,learners); + lessonService.performChosenGrouping(groupingActivity,learners); log.debug("Finish grouping for " + groupName); }