--- /dev/null
+package com.pentila.evalcomp.service.ws;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Controller;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.pentila.evalcomp.domain.definition.EvaluationDefinition;
+import com.pentila.evalcomp.domain.definition.ScenarioDefinition;
+import com.pentila.evalcomp.domain.examen.Examen;
+import com.pentila.evalcomp.domain.plan.Plan;
+import com.pentila.evalcomp.manager.Beans;
+import com.pentila.evalcomp.manager.interfacedef.IDefinitionBase;
+import com.pentila.evalcomp.manager.interfacedef.IEntityBase;
+import com.pentila.evalcomp.manager.interfacedef.IEvaluationObjectBase;
+import com.pentila.evalcomp.manager.interfacedef.IExamenBase;
+import com.pentila.evalcomp.manager.interfacedef.IPlanBase;
+import com.pentila.evalcomp.manager.interfacedef.IWorkflowBase;
+import com.pentila.evalcomp.service.ws.ent.CampagneENT;
+import com.pentila.evalcomp.service.ws.ent.WsConverter;
+import com.pentila.evalcomp.utilities.WSUtils;
+
+@Controller
+@Component("evaluationDefinitionController")
+public class EvaluationDefinitionServiceController {
+
+ @Autowired
+ @Qualifier("definitionManager")
+ IDefinitionBase definitionManager;
+
+ @Autowired
+ @Qualifier("definitionManagerProxyWS")
+ IDefinitionBase definitionManagerProxyWS;
+
+ @Autowired
+ @Qualifier("entityManager")
+ IEntityBase entityManager;
+
+ @Autowired
+ @Qualifier("planManager")
+ IPlanBase planManager;
+
+ @Autowired
+ @Qualifier("workflowManager")
+ IWorkflowBase workFlowManager;
+
+ @Autowired
+ @Qualifier("evaluationObjectManager")
+ IEvaluationObjectBase evaluationObjectManager;
+
+ @Autowired
+ @Qualifier("examenManager")
+ IExamenBase examenManager;
+
+
+ @RequestMapping(method=RequestMethod.GET, value="evaluationDefinition/addEvaluationDefinition")
+ public ModelAndView newCampaign(@RequestParam("dateStart") String dateStartString,
+ @RequestParam("dateEnd") String dateEndString,
+ @RequestParam("creator") String creator,
+ @RequestParam("name") String name,
+ @RequestParam("description") String description){
+
+ Integer result = WsErrors.WS_OK;
+
+ try{
+ dateStartString = java.net.URLDecoder.decode(dateStartString, "UTF-8");
+ dateEndString = java.net.URLDecoder.decode(dateEndString, "UTF-8");
+ creator = java.net.URLDecoder.decode(creator, "UTF-8");
+ name = java.net.URLDecoder.decode(name, "UTF-8");
+ description = java.net.URLDecoder.decode(description, "UTF-8");
+
+ Long dateStart = Long.parseLong(dateStartString);
+ Long dateEnd = Long.parseLong(dateEndString);
+
+ Date start = new Date();
+ start.setTime(dateStart*1000);
+ Date end = new Date();
+ end.setTime(dateEnd*1000);
+
+ if (null == entityManager.getUser(creator)){
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "evaluationDefinition/addEvaluationDefinition", WsErrors.ERROR_CAMPAIGN_CREATOR);
+ }
+
+ for (EvaluationDefinition evaldef : definitionManager.getEvaluationDefinitions()){
+ if(evaldef.getName().equals(name)){
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "evaluationDefinition/addEvaluationDefinition", WsErrors.ERROR_NAME_CAMPAIGN);
+ }
+ }
+
+ EvaluationDefinition ed = new EvaluationDefinition();
+ ed.setDateEnd(end);
+ ed.setDateStart(start);
+ ed.setOwner(entityManager.getUser(creator));
+ ed.setName(name);
+ ed.setDescription(description);
+ ed = definitionManager.addEvaluationDefinition(ed);
+
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "evaluationDefinition/addEvaluationDefinition", ed.getId());
+
+ }
+ catch (NumberFormatException e){
+ result = WsErrors.ERROR_PARSING;
+ }
+ catch (UnsupportedEncodingException e1) {
+ result = WsErrors.ERROR_URL_DECODING;
+ }
+ catch (Exception e){
+ System.out.println(e);
+ result = WsErrors.ERROR_UNDEFINED;
+ }
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "evaluationDefinition/addEvaluationDefinition", result);
+ }
+
+ @RequestMapping(method=RequestMethod.GET, value="evaluationDefinition/deleteEvaluationDefinition")
+ public ModelAndView deleteEvaluationDefinition(@RequestParam("ed") String edidString){
+
+ Integer result = WsErrors.WS_OK;
+
+ try{
+ edidString = java.net.URLDecoder.decode(edidString, "UTF-8");
+ Long edid = Long.parseLong(edidString);
+ Set<Long> setEdids = new HashSet<Long>();
+ setEdids.add(edid);
+ definitionManager.deleteEvaluationDefinitions(setEdids);
+ result = WsErrors.WS_OK;
+ }
+ catch (NumberFormatException e){
+ result = WsErrors.ERROR_PARSING;
+ }
+ catch (UnsupportedEncodingException e1) {
+ result = WsErrors.ERROR_URL_DECODING;
+ }
+ catch (Exception e){
+ System.out.println(e);
+ result = WsErrors.ERROR_UNDEFINED;
+ }
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "evaluationDefinition/addEvaluationDefinition", result);
+ }
+
+ @RequestMapping(method=RequestMethod.GET, value="evaluationDefinition/getEvaluationDefinition")
+ public ModelAndView getEvaluationDefinition(@RequestParam("id") String id){
+ Object result = null;
+ try{
+ id = java.net.URLDecoder.decode(id, "UTF-8");
+ Long campagneID = Long.parseLong(id);
+
+ WSUtils.setAttribute("A3");
+ EvaluationDefinition ed = definitionManagerProxyWS.getEvaluationDefinition(campagneID);
+
+ if(null == ed){
+ result = WsErrors.ERROR_CAMPAIGN_ID;
+ }
+ else{
+ ed = WSUtils.clone(ed);
+ result = ed;
+ }
+ }
+ catch (NumberFormatException e){
+ result = WsErrors.ERROR_PARSING;
+ }
+ catch (UnsupportedEncodingException e1) {
+ result = WsErrors.ERROR_URL_DECODING;
+ }
+ catch (Exception e){
+ System.out.println(e);
+ result = WsErrors.ERROR_UNDEFINED;
+ }
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "evaluationDefinition/getEvaluationDefinition", result);
+ }
+
+ @RequestMapping(method=RequestMethod.GET, value="evaluationDefinition/replacePlan")
+ public ModelAndView replacePlan(@RequestParam("ed") String edidString,
+ @RequestParam("plan") String planString){
+ Object result = null;
+ try{
+ edidString = java.net.URLDecoder.decode(edidString, "UTF-8");
+ planString = java.net.URLDecoder.decode(planString, "UTF-8");
+
+ Long edid = Long.parseLong(edidString);
+ Long planFormationID = Long.parseLong(planString);
+
+ EvaluationDefinition ed = definitionManager.getEvaluationDefinition(edid);
+ Plan plan = planManager.getPlan(planFormationID);
+
+ if (null == ed){
+ result = WsErrors.ERROR_CAMPAIGN_ID;
+ }
+ else if (null == plan){
+ result = WsErrors.ERROR_PLAN_ID;
+ }
+ else{
+ definitionManager.replacePlanInED(ed, plan);
+ result = WsErrors.WS_OK;
+ }
+ }
+ catch (NumberFormatException e){
+ result = WsErrors.ERROR_PARSING;
+ }
+ catch (UnsupportedEncodingException e1) {
+ result = WsErrors.ERROR_URL_DECODING;
+ }
+ catch (Exception e){
+ System.out.println(e);
+ result = WsErrors.ERROR_UNDEFINED;
+ }
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "evaluationDefinition/replacePlan", result);
+ }
+
+ @RequestMapping(method=RequestMethod.GET, value="evaluationDefinition/replaceScenarioEvaluation")
+ public ModelAndView replaceScenarioEvaluation(@RequestParam("ed") String edIdString,
+ @RequestParam("scenario") String scenario){
+ Object result = null;
+ try{
+ edIdString = java.net.URLDecoder.decode(edIdString, "UTF-8");
+ scenario = java.net.URLDecoder.decode(scenario, "UTF-8");
+
+ Long edid = Long.parseLong(edIdString);
+
+ EvaluationDefinition ed = definitionManager.getEvaluationDefinition(edid);
+
+ if (null == ed){
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "evaluationDefinition/replaceScenarioEvaluation", WsErrors.ERROR_CAMPAIGN_ID);
+ }
+
+ ScenarioDefinition SD = new ScenarioDefinition();
+ SD.setProcessDefinitionUUID(scenario);
+ SD = definitionManager.addSDToED(edid, SD);
+
+ result = (null==SD) ? WsErrors.ERROR_SCENARIO_EVALUATION_UUID : WsErrors.WS_OK;
+ }
+ catch (NumberFormatException e){
+ result = WsErrors.ERROR_PARSING;
+ }
+ catch (UnsupportedEncodingException e1) {
+ result = WsErrors.ERROR_URL_DECODING;
+ }
+ catch (Exception e){
+ System.out.println(e);
+ result = WsErrors.ERROR_UNDEFINED;
+ }
+
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "evaluationDefinition/replaceScenarioEvaluation", result);
+ }
+
+
+ @RequestMapping(method=RequestMethod.GET, value="evaluationDefinition/updateEntities")
+ public ModelAndView updateEntity(@RequestParam("ed") String edidString,
+ @RequestParam("entities") String entities,
+ @RequestParam("role") String role,
+ @RequestParam("action") String action){
+ Object result = null;
+ try{
+ edidString = java.net.URLDecoder.decode(edidString, "UTF-8");
+ entities = java.net.URLDecoder.decode(entities, "UTF-8");
+ role = java.net.URLDecoder.decode(role, "UTF-8");
+ action = java.net.URLDecoder.decode(action, "UTF-8");
+
+ Long campagneID = Long.parseLong(edidString);
+
+ EvaluationDefinition ed = definitionManager.getEvaluationDefinition(campagneID);
+ if (null == ed){
+ result = WsErrors.ERROR_CAMPAIGN_ID;
+ }
+ else{
+ result = definitionManager.campaignUpdateEntities(ed,entities,role,action);
+ }
+ }
+ catch (NumberFormatException e){
+ result = WsErrors.ERROR_PARSING;
+ }
+ catch (UnsupportedEncodingException e1) {
+ result = WsErrors.ERROR_URL_DECODING;
+ }
+ catch (Exception e){
+ System.out.println(e);
+ result = WsErrors.ERROR_UNDEFINED;
+ }
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "campaign/updateEntities", result);
+ }
+
+
+ @RequestMapping(method=RequestMethod.GET, value="evaluationDefinition/updateExamen")
+ public ModelAndView updateExamen(@RequestParam("ed") String edidString,
+ @RequestParam("examen") String examen,
+ @RequestParam("action") String action){
+ Object result = null;
+ try{
+ edidString = java.net.URLDecoder.decode(edidString, "UTF-8");
+ examen = java.net.URLDecoder.decode(examen, "UTF-8");
+ action = java.net.URLDecoder.decode(action, "UTF-8");
+
+ Long edid = Long.parseLong(edidString);
+ Long examenID = Long.parseLong(examen);
+
+ EvaluationDefinition ed = definitionManager.getEvaluationDefinition(edid);
+ //Examen exam = examenManager.gegetExamen(examenID);
+
+
+ if (null == ed){
+ result = WsErrors.ERROR_CAMPAIGN_ID;
+ }
+ //else if (null == exam){
+ // result = WsErrors.ERROR_EXAMEN_ID;
+ //}
+ else if(ed.getState() != 0){
+ result = WsErrors.ERROR_NOT_ALLOWED;
+ }
+ else{
+ Set<Long> exams = new HashSet<Long>();
+ exams.add(examenID);
+ if("add".equalsIgnoreCase(action)){
+ definitionManager.addExamensToED(ed.getId(), exams);
+
+ result = WsErrors.WS_OK;
+ }
+ else if("remove".equalsIgnoreCase(action)){
+ definitionManager.removeExamensFromED(ed.getId(), exams);
+ result = WsErrors.WS_OK;
+ }
+ else{
+ result = WsErrors.ERROR_UNKNOWN_COMMAND;
+ }
+ }
+
+ }
+ catch (NumberFormatException e){
+ result = WsErrors.ERROR_PARSING;
+ }
+ catch (UnsupportedEncodingException e1) {
+ result = WsErrors.ERROR_URL_DECODING;
+ }
+ catch (Exception e){
+ System.out.println(e);
+ result = WsErrors.ERROR_UNDEFINED;
+ }
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "evaluationDefinition/updateExamen", result);
+ }
+
+ @RequestMapping(method=RequestMethod.GET, value="evaluationDefinition/editEvaluationDefinition")
+ public ModelAndView editEvaluationDefinition(@RequestParam("id") String id,
+ @RequestParam("name") String name,
+ @RequestParam("dateStart") String dateStart,
+ @RequestParam("dateEnd") String dateEnd){
+ Object result = null;
+ try{
+ id = java.net.URLDecoder.decode(id, "UTF-8");
+ name = java.net.URLDecoder.decode(name, "UTF-8");
+ dateStart = java.net.URLDecoder.decode(dateStart, "UTF-8");
+ dateEnd = java.net.URLDecoder.decode(dateEnd, "UTF-8");
+
+ Long campagneID = Long.parseLong(id);
+ Long dateStartLong = Long.parseLong(dateStart);
+ Long dateEndLong = Long.parseLong(dateEnd);
+
+ EvaluationDefinition ed = definitionManager.getEvaluationDefinition(campagneID);
+
+ if(ed == null){
+ result = WsErrors.ERROR_CAMPAIGN_ID;
+ }
+ else{
+ Date start = new Date(dateStartLong);
+ Date end = new Date(dateEndLong);
+
+ ed.setName(name);
+ ed.setDateStart(start);
+ ed.setDateEnd(end);
+
+ ed = definitionManager.editEvaluationDefinition(ed);
+
+ result = WsErrors.WS_OK;
+ }
+ }
+ catch (NumberFormatException e){
+ result = WsErrors.ERROR_PARSING;
+ }
+ catch (UnsupportedEncodingException e1) {
+ result = WsErrors.ERROR_URL_DECODING;
+ }
+ catch (Exception e){
+ System.out.println(e);
+ result = WsErrors.ERROR_UNDEFINED;
+ }
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "evaluationDefinition/editEvaluationDefinition", result);
+ }
+
+ @RequestMapping(method=RequestMethod.GET, value="evaluationDefinition/instantiateED")
+ public ModelAndView instantiateED(@RequestParam("ed") String id){
+ Object result = null;
+ try{
+ id = java.net.URLDecoder.decode(id, "UTF-8");
+ Long edid = Long.parseLong(id);
+ EvaluationDefinition ed = definitionManager.getEvaluationDefinition(edid);
+
+ if (null == ed){
+ result = WsErrors.ERROR_CAMPAIGN_ID;
+ }
+ else if(ed.getState() != 0){
+ result = WsErrors.ERROR_NOT_ALLOWED;
+ }
+ else{
+ Integer iresult = definitionManager.instanciateED(edid);
+ result = iresult;
+ }
+
+ }
+ catch (NumberFormatException e){
+ result = WsErrors.ERROR_PARSING;
+ }
+ catch (UnsupportedEncodingException e1) {
+ result = WsErrors.ERROR_URL_DECODING;
+ }
+ catch (Exception e){
+ System.out.println(e);
+ result = WsErrors.ERROR_UNDEFINED;
+ }
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "evaluationDefinition/instantiateED", result);
+ }
+
+ /* normalement plus utilisé */
+ /*@RequestMapping(method=RequestMethod.GET, value="campaign/getScenarioEvaluationParameters")
+ public ModelAndView instantiateCampaign(@RequestParam("campagne") String campagne,
+ @RequestParam("scenario") String scenario){
+ Mapper mapper = (Mapper)Beans.getApplicationContext().getBean("dozerMapper");
+
+ try{
+ campagne = java.net.URLDecoder.decode(campagne, "UTF-8");
+ scenario = java.net.URLDecoder.decode(scenario, "UTF-8");
+
+ Long campagneID = Long.parseLong(campagne);
+
+ EvaluationDefinition ed = definitionManager.getEvaluationDefinition(campagneID);
+
+ if (null == ed){
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "campaign/getScenarioEvaluationParameters", WsErrors.ERROR_CAMPAIGN_ID);
+ }
+
+ List<PropertyDTO> liste = new ArrayList<PropertyDTO>();
+
+ for(ScenarioDefinition SD : ed.getScenarioDefinitions()){
+ if(scenario.equals(SD.getProcessDefinitionUUID())){
+ for(Property p : SD.getProperties()){
+ if(p.getName().startsWith("PROPERTY_")){
+ PropertyDTO pDTO = mapper.map(p, PropertyDTO.class, "wsENT-Property");
+ liste.add(pDTO);
+ //System.out.println(pDTO.getName() + "=" + pDTO.getValue());
+ }
+ }
+ break;
+ }
+ }
+
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "campaign/getScenarioEvaluationParameters", liste);
+
+ }
+ catch (NumberFormatException e){
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "campaign/getScenarioEvaluationParameters", WsErrors.ERROR_PARSING);
+ }
+ catch (UnsupportedEncodingException e1) {
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "campaign/getScenarioEvaluationParameters", WsErrors.ERROR_URL_DECODING);
+ }
+ catch (Exception e){
+ System.out.println(e);
+ return new ModelAndView("", BindingResult.MODEL_KEY_PREFIX + "campaign/getScenarioEvaluationParameters", WsErrors.ERROR_UNDEFINED);
+ }
+ }*/
+
+
+
+}