/** * Deletes all the exchanges or a specific one * * @author coni * @throws InvocationTargetException * @throws IllegalAccessException * @throws ClassNotFoundException * @throws NoSuchMethodException * @throws IllegalArgumentException * @throws SecurityException */ private void handleDeleteAll( HttpServletRequest request, Object command, ArrayList<String> infoMessages, ArrayList<String> errorMessages) throws BusinessException, SecurityException, IllegalArgumentException, NoSuchMethodException, ClassNotFoundException, IllegalAccessException, InvocationTargetException { logger.debug("handleDeleteAll - START"); SearchExchangeBean searchExchangeBean = (SearchExchangeBean) command; logger.debug(searchExchangeBean); logger.debug("start deleting " + searchExchangeBean.getExchangeId().length + " exchange(s)."); handleDeleteAllSimple(request, searchExchangeBean, infoMessages, errorMessages); logger.debug("Results per page " + searchExchangeBean.getResultsPerPage()); logger.debug("handleDeleteAll - END"); }
/** * Deletes exchanges * * @author coni * @param request * @param searchExchangeBean * @throws BusinessException * @throws ClassNotFoundException * @throws NoSuchMethodException * @throws SecurityException * @throws InvocationTargetException * @throws IllegalAccessException * @throws IllegalArgumentException */ private void handleDeleteAllSimple( HttpServletRequest request, SearchExchangeBean searchExchangeBean, ArrayList<String> infoMessages, ArrayList<String> errorMessages) throws BusinessException, SecurityException, NoSuchMethodException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { logger.debug("handleDeleteAllSimple - START "); UserAuth userAuth = (UserAuth) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); Exchange exchange = null; for (int i = 0; i < searchExchangeBean.getExchangeId().length; i++) { logger.debug("Delete exchange : " + searchExchangeBean.getExchangeId()[i]); boolean isDeleted = true; try { exchange = BLExchange.getInstance().delete(searchExchangeBean.getExchangeId()[i]); } catch (BusinessException be) { logger.error("", be); errorMessages.add( messageSource.getMessage( DELETE_ERROR, new Object[] { be.getCode(), ControllerUtils.getInstance().getFormattedCurrentTime() }, RequestContextUtils.getLocale(request))); isDeleted = false; } if (isDeleted) { // send notification String projectName = null; String message = null; Integer projectId = null; if (exchange != null) { if (exchange.getProjectDetail() != null) { Project project = BLProject.getInstance().get(exchange.getProjectDetail().getProjectId(), true); projectId = exchange.getProjectDetail().getProjectId(); if (project != null) { projectName = project.getName(); } message = IConstant.NOTIFICATION_MESSAGE_EXCHANGE_PROJECT_DELETE; } else { projectName = IConstant.KEY.concat(IConstant.FROM_ORGANIZATION); message = IConstant.NOTIFICATION_MESSAGE_EXCHANGE_ORG_DELETE; } } // send a notification regarding the deleting of the exchange sendNotificationExchangeDelete( projectId, exchange.getProjectDetailId(), userAuth.getOrganisationId(), message, new Object[] { exchange.getFirstCurrency().getName(), exchange.getSecondCurrency().getName(), projectName, userAuth.getFirstName().concat(" ").concat(userAuth.getLastName()) }, IConstant.NOTIFICATION_SUBJECT_EXCHANGE_DELETE, new Object[] {null}, IConstant.NOTIFICATION_SETTING_EXCHANGE_DELETE); infoMessages.add( messageSource.getMessage( DELETE_SUCCESS, new Object[] { exchange .getFirstCurrency() .getInitials() .concat(" - ") .concat(exchange.getSecondCurrency().getInitials()) }, RequestContextUtils.getLocale(request))); // add the new audit event only if the user is not AdminIT try { if (!userAuth.isAdminIT()) { if (exchange.getProjectDetailId() == null) { BLAudit.getInstance() .add( IConstant.AUDIT_EVENT_EXCHANGE_DELETE_TYPE, userAuth.getFirstName(), userAuth.getLastName(), messageSource.getMessage( IConstant.AUDIT_EVENT_EXCHANGE_FOR_ORG_DELETE_MESSAGE, new Object[] { exchange.getFirstCurrency().getName(), exchange.getSecondCurrency().getName() }, new Locale("en")), messageSource.getMessage( IConstant.AUDIT_EVENT_EXCHANGE_FOR_ORG_DELETE_MESSAGE, new Object[] { exchange.getFirstCurrency().getName(), exchange.getSecondCurrency().getName() }, new Locale("ro")), ControllerUtils.getInstance().getOrganisationIdFromSession(request), userAuth.getPersonId()); } else { Project project = BLProject.getInstance().get(exchange.getProjectId(), true); BLAudit.getInstance() .add( IConstant.AUDIT_EVENT_EXCHANGE_DELETE_TYPE, userAuth.getFirstName(), userAuth.getLastName(), messageSource.getMessage( IConstant.AUDIT_EVENT_EXCHANGE_FOR_PROJECT_DELETE_MESSAGE, new Object[] { exchange.getFirstCurrency().getName(), exchange.getSecondCurrency().getName(), project.getName() }, new Locale("en")), messageSource.getMessage( IConstant.AUDIT_EVENT_EXCHANGE_FOR_PROJECT_DELETE_MESSAGE, new Object[] { exchange.getFirstCurrency().getName(), exchange.getSecondCurrency().getName(), project.getName() }, new Locale("ro")), ControllerUtils.getInstance().getOrganisationIdFromSession(request), userAuth.getPersonId()); } } } catch (Exception exc) { logger.error("", exc); } } } logger.debug("handleDeleteAllSimple - END "); }