Index: lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java =================================================================== diff -u -r2e01f1405c577764d7d10bbee760d94a4f00c19a -rf9992d0803d826cdd027b141fba56d1a2de77847 --- lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java (.../CentralConstants.java) (revision 2e01f1405c577764d7d10bbee760d94a4f00c19a) +++ lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java (.../CentralConstants.java) (revision f9992d0803d826cdd027b141fba56d1a2de77847) @@ -59,6 +59,8 @@ public static final String METHOD_PREVIEW = "preview"; + public static final String METHOD_IMPORT = "import"; + public static final String METHOD_SCHEDULE = "schedule"; public static final String METHOD_DELETE = "delete"; @@ -67,8 +69,12 @@ public static final String PARAM_MODE = "mode"; + public static final String PARAM_FILEPATH = "filePath"; + public static final String ATTR_COURSE_ID = "courseId"; + public static final String ELEM_LEARNINGDESIGN = "Lesson"; + public static final String ELEM_LESSON = "Lesson"; public static final String ELEM_LESSON_PROGRESS ="LessonProgress"; @@ -98,4 +104,6 @@ public static final String ATTR_USERNAME = "username"; public static final String ATTR_RESOURCE_ID = "resourceId"; + + public static final String EXPORT_TOOLCONTENT_SERVICE_BEAN_NAME = "exportToolContentService"; } Index: lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java =================================================================== diff -u -r2e01f1405c577764d7d10bbee760d94a4f00c19a -rf9992d0803d826cdd027b141fba56d1a2de77847 --- lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java (.../LessonManagerServlet.java) (revision 2e01f1405c577764d7d10bbee760d94a4f00c19a) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java (.../LessonManagerServlet.java) (revision f9992d0803d826cdd027b141fba56d1a2de77847) @@ -1,14 +1,17 @@ package org.lamsfoundation.lams.webservice.xml; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; +import java.io.File; import java.rmi.RemoteException; import java.util.Date; import java.util.LinkedList; import java.util.List; import java.util.Set; import java.util.Iterator; +import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -28,9 +31,12 @@ import org.lamsfoundation.lams.integration.ExtCourseClassMap; import org.lamsfoundation.lams.integration.ExtServerOrgMap; import org.lamsfoundation.lams.integration.ExtUserUseridMap; +import org.lamsfoundation.lams.integration.UserInfoFetchException; import org.lamsfoundation.lams.integration.security.Authenticator; import org.lamsfoundation.lams.integration.service.IntegrationService; import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService; +import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException; import org.lamsfoundation.lams.monitoring.service.IMonitoringService; import org.lamsfoundation.lams.lesson.service.ILessonService; import org.lamsfoundation.lams.lesson.service.LessonService; @@ -41,6 +47,7 @@ import org.lamsfoundation.lams.util.DateUtil; import org.lamsfoundation.lams.lesson.LearnerProgress; import org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService; +import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -58,6 +65,8 @@ private static ILessonService lessonService = null; + private static IExportToolContentService exportService = null; + /** * Constructor of the object. */ @@ -107,6 +116,7 @@ String startDate = request.getParameter(CentralConstants.PARAM_STARTDATE); String lang = request.getParameter(CentralConstants.PARAM_LANG); String method = request.getParameter(CentralConstants.PARAM_METHOD); + String filePath = request.getParameter(CentralConstants.PARAM_FILEPATH); Long ldId = null; Long lsId = null; @@ -158,8 +168,17 @@ lsId = new Long(lsIdStr); element = getAllStudentProgress(document, serverId, datetime, hashValue, username, lsId, courseId); - } - else { + + } else if (method.equals(CentralConstants.METHOD_IMPORT)) { + + // ldId = new Long(ldIdStr); + Long ldID = importLearningDesign(filePath, username, serverId); + + element = document.createElement(CentralConstants.ELEM_LEARNINGDESIGN); + element.setAttribute(CentralConstants.PARAM_LEARNING_DESIGN_ID, ldID.toString()); + + + } else { String msg = "Method :" + method + " is not recognised"; log.error(msg); response.sendError(response.SC_BAD_REQUEST, msg); @@ -405,8 +424,38 @@ } + public Long importLearningDesign(String filePath, String username, String serverId) + throws RemoteException { + List ldErrorMsgs = new ArrayList(); + List toolsErrorMsgs = new ArrayList(); + Long ldId = null; + Integer workspaceFolderUid = null; + ExtUserUseridMap userMap; + User user = null; + ExtServerOrgMap serverMap = integrationService + .getExtServerOrgMap(serverId); + + try { + + userMap = integrationService.getExtUserUseridMap( + serverMap, username); + user = userMap.getUser(); + + File designFile = new File(filePath); + Object[] ldResults = exportService.importLearningDesign(designFile, user, workspaceFolderUid, toolsErrorMsgs); + ldId = (Long) ldResults[0]; + ldErrorMsgs = (List) ldResults[1]; + toolsErrorMsgs = (List) ldResults[2]; + + return ldId; + } catch (Exception e) { + throw new RemoteException(e.getMessage(), e); + } + + } + private void createLessonClass(Lesson lesson, Organisation organisation, User creator) { @@ -476,5 +525,12 @@ lessonService = (ILessonService) WebApplicationContextUtils .getRequiredWebApplicationContext(getServletContext()).getBean( "lessonService"); + + exportService = (IExportToolContentService) WebApplicationContextUtils + .getRequiredWebApplicationContext(getServletContext()).getBean( + "exportToolContentService"); + } + + }