in study-builder/fdahpStudyDesigner/src/main/java/com/fdahpstudydesigner/controller/StudyController.java [3444:3605]
public ModelAndView saveOrUpdateResource(HttpServletRequest request, ResourceBO resourceBO) {
logger.entry("begin saveOrUpdateResource()");
ModelAndView mav = new ModelAndView("redirect:/adminStudies/studyList.do");
String resourseId = null;
Map<String, String> propMap = FdahpStudyDesignerUtil.getAppProperties();
ModelMap map = new ModelMap();
Map<String, String> values = new HashMap<>();
try {
AuditLogEventRequest auditRequest = AuditEventMapper.fromHttpServletRequest(request);
SessionObject sesObj =
(SessionObject)
request.getSession().getAttribute(FdahpStudyDesignerConstants.SESSION_OBJECT);
Integer sessionStudyCount =
StringUtils.isNumeric(request.getParameter("_S"))
? Integer.parseInt(request.getParameter("_S"))
: 0;
if ((sesObj != null)
&& (sesObj.getStudySession() != null)
&& sesObj.getStudySession().contains(sessionStudyCount)) {
String textOrPdfParam =
FdahpStudyDesignerUtil.isEmpty(request.getParameter("textOrPdfParam"))
? ""
: request.getParameter("textOrPdfParam");
String resourceVisibilityParam =
FdahpStudyDesignerUtil.isEmpty(request.getParameter("resourceVisibilityParam"))
? ""
: request.getParameter("resourceVisibilityParam");
String buttonText =
FdahpStudyDesignerUtil.isEmpty(
request.getParameter(FdahpStudyDesignerConstants.BUTTON_TEXT))
? ""
: request.getParameter(FdahpStudyDesignerConstants.BUTTON_TEXT);
String studyId =
(String)
request
.getSession()
.getAttribute(sessionStudyCount + FdahpStudyDesignerConstants.STUDY_ID);
String studyProtocol =
FdahpStudyDesignerUtil.isEmpty(
request.getParameter(FdahpStudyDesignerConstants.IS_STUDY_PROTOCOL))
? ""
: request.getParameter(FdahpStudyDesignerConstants.IS_STUDY_PROTOCOL);
String action =
FdahpStudyDesignerUtil.isEmpty(
request.getParameter(FdahpStudyDesignerConstants.ACTION_ON))
? ""
: request.getParameter(FdahpStudyDesignerConstants.ACTION_ON);
String resourceTypeParm =
FdahpStudyDesignerUtil.isEmpty(request.getParameter("resourceTypeParm"))
? ""
: request.getParameter("resourceTypeParm");
if (resourceBO != null) {
StudyBo studyBo = studyService.getStudyInfo(studyId);
auditRequest.setStudyId(studyBo.getCustomStudyId());
auditRequest.setStudyVersion(studyBo.getVersion().toString());
auditRequest.setAppId(studyBo.getAppId());
if (!("").equals(buttonText)) {
if (("save").equalsIgnoreCase(buttonText)) {
resourceBO.setAction(false);
} else if (("done").equalsIgnoreCase(buttonText)) {
resourceBO.setAction(true);
}
}
if (!("").equals(studyProtocol)
&& (FdahpStudyDesignerConstants.IS_STUDY_PROTOCOL).equalsIgnoreCase(studyProtocol)) {
resourceBO.setStudyProtocol(true);
} else {
resourceBO.setStudyProtocol(false);
}
resourceBO.setStudyId(studyId);
resourceBO.setTextOrPdf(("0").equals(textOrPdfParam) ? false : true);
resourceBO.setResourceVisibility(("0").equals(resourceVisibilityParam) ? false : true);
if (!resourceBO.isResourceVisibility()) {
resourceBO.setResourceType("0".equals(resourceTypeParm) ? false : true);
} else {
resourceBO.setResourceType(false);
}
if ((resourceBO.getStudyId() != null)
&& (StringUtils.isEmpty(resourceBO.getId()))
&& !resourceBO.isStudyProtocol()) {
int order = studyService.resourceOrder(resourceBO.getStudyId());
resourceBO.setSequenceNo(order);
}
resourseId = studyService.saveOrUpdateResource(resourceBO, sesObj);
}
if (StringUtils.isNotEmpty(resourseId)) {
values.put("resource_id", resourseId.toString());
auditLogEventHelper.logEvent(STUDY_NEW_RESOURCE_CREATED, auditRequest, values);
if ((resourceBO != null) && (StringUtils.isEmpty(resourceBO.getId()))) {
if (("save").equalsIgnoreCase(buttonText)) {
auditLogEventHelper.logEvent(STUDY_RESOURCE_SAVED_OR_UPDATED, auditRequest, values);
request
.getSession()
.setAttribute(
sessionStudyCount + FdahpStudyDesignerConstants.SUC_MSG,
propMap.get(FdahpStudyDesignerConstants.SAVE_STUDY_SUCCESS_MESSAGE));
} else {
auditLogEventHelper.logEvent(STUDY_RESOURCE_MARKED_COMPLETED, auditRequest, values);
request
.getSession()
.setAttribute(
sessionStudyCount + FdahpStudyDesignerConstants.SUC_MSG,
"Resource successfully added");
}
} else {
if (("save").equalsIgnoreCase(buttonText)) {
auditLogEventHelper.logEvent(STUDY_RESOURCE_SAVED_OR_UPDATED, auditRequest, values);
request
.getSession()
.setAttribute(
sessionStudyCount + FdahpStudyDesignerConstants.SUC_MSG,
propMap.get(FdahpStudyDesignerConstants.SAVE_STUDY_SUCCESS_MESSAGE));
} else {
auditLogEventHelper.logEvent(STUDY_RESOURCE_MARKED_COMPLETED, auditRequest, values);
request
.getSession()
.setAttribute(
sessionStudyCount + FdahpStudyDesignerConstants.SUC_MSG,
"Resource successfully updated");
}
}
} else {
if ((resourceBO != null) && (resourceBO.getId() == null)) {
request
.getSession()
.setAttribute(
sessionStudyCount + FdahpStudyDesignerConstants.ERR_MSG,
"Failed to add resource");
} else {
request
.getSession()
.setAttribute(
sessionStudyCount + FdahpStudyDesignerConstants.ERR_MSG,
"Failed to update resource");
}
}
map.addAttribute("_S", sessionStudyCount);
if (("save").equalsIgnoreCase(buttonText)) {
request
.getSession()
.setAttribute(sessionStudyCount + FdahpStudyDesignerConstants.ACTION_ON, action);
request
.getSession()
.setAttribute(
sessionStudyCount + FdahpStudyDesignerConstants.RESOURCE_INFO_ID,
resourseId + "");
request
.getSession()
.setAttribute(
sessionStudyCount + FdahpStudyDesignerConstants.IS_STUDY_PROTOCOL,
studyProtocol + "");
mav = new ModelAndView("redirect:addOrEditResource.do", map);
} else {
mav = new ModelAndView("redirect:getResourceList.do", map);
}
}
} catch (Exception e) {
logger.error("StudyController - saveOrUpdateResource() - ERROR", e);
}
logger.exit("saveOrUpdateResource() - Ends");
return mav;
}