--- /dev/null
+/*******************************************************************************
+ * Copyright © Igor Barma, Alexandre Desoubeaux, Christian Martel, Eric Brun, Mathieu Amblard, Gwenael Gevet, Pierre Guillot, 2012
+ *
+ * This file is part of the work and learning management system Pentila Nero.
+ *
+ * Pentila Nero is free software. You can redistribute it and/or modify since
+ * you respect the terms of either (at least one of the both license) :
+ * - under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ * - the CeCILL-C as published by CeCILL-C; either version 1 of the
+ * License, or any later version
+ * - the GNU Lesser General Public License as published by the
+ * Free Software Foundation, either version 3 of the license,
+ * or (at your option) any later version.
+ *
+ * There are special exceptions to the terms and conditions of the
+ * licenses as they are applied to this software. View the full text of
+ * the exception in file LICENSE-PROJECT.txt in the directory of this software
+ * distribution.
+ *
+ * Pentila Nero is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * Licenses for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * and the CeCILL-C and the GNU Lesser General Public License along with
+ * Pentila Nero. If not, see :
+ * <http://www.gnu.org/licenses/> and
+ * <http://www.cecill.info/licences.fr.html>.
+ ******************************************************************************/
+package com.pentila.entSavoie.internalMessaging.service.impl;
+
+import java.util.List;
+
+import com.liferay.counter.service.CounterServiceUtil;
+import com.liferay.portal.SystemException;
+import com.pentila.entSavoie.internalMessaging.InternalMessagingConstants;
+import com.pentila.entSavoie.internalMessaging.model.InternalFolderMessage;
+import com.pentila.entSavoie.internalMessaging.service.base.InternalFolderMessageLocalServiceBaseImpl;
+
+
+public class InternalFolderMessageLocalServiceImpl
+ extends InternalFolderMessageLocalServiceBaseImpl {
+
+ public List<InternalFolderMessage> getUserFolderMessages(long userId) throws SystemException {
+ checkInitialFolders(userId);
+ return internalFolderMessagePersistence.findByuserId(userId);
+ }
+
+ public List<InternalFolderMessage> getUserFolderMessages(long userId, String nodePath) throws SystemException {
+ checkInitialFolders(userId);
+ return internalFolderMessagePersistence.findByuserId_nodePath(userId, nodePath);
+ }
+
+ public List<InternalFolderMessage> getUserFolderTypeMessages(long userId, String folderType) throws SystemException {
+ checkInitialFolders(userId);
+ return internalFolderMessagePersistence.findByuserId_typeFolder(userId, folderType);
+ }
+
+ public int countInternalFolderMessage(long userId, String nodePath) throws SystemException {
+ return internalFolderMessagePersistence.countByuserId_nodePath(userId, nodePath);
+ }
+
+ // Ajout d'un folderMessage
+ public InternalFolderMessage addFolderMessage() throws SystemException {
+ final long folderMessageId = CounterServiceUtil.increment();
+ final InternalFolderMessage folderMessage = this.createInternalFolderMessage(folderMessageId);
+ return folderMessage;
+ }
+
+ private void checkInitialFolders(long userId) throws SystemException {
+ // verifie si les folder incomming et sended sont créés
+
+
+ if (internalFolderMessagePersistence.findByuserId_typeFolder(userId, InternalMessagingConstants.INCOMMING_FOLDER_TYPE).isEmpty()) {
+ // on cree un dossier incomming
+ InternalFolderMessage incommming = addFolderMessage();
+ incommming.setUserId(userId);
+ incommming.setFolderName("Bo\u00eete de r\u00e9ception");
+ incommming.setFolderType(InternalMessagingConstants.INCOMMING_FOLDER_TYPE);
+ incommming.setIsDeletable(false);
+ incommming.setNodePath(InternalMessagingConstants.FOLDER_MESSAGE_ROOT_PATH);
+ incommming.setOrderEntity(0);
+ internalFolderMessagePersistence.update(incommming, false);
+
+ }
+
+ if (internalFolderMessagePersistence.findByuserId_typeFolder(userId, InternalMessagingConstants.SENDING_FOLDER_TYPE).isEmpty()) {
+ // on cree un dossier sending
+ InternalFolderMessage sending = addFolderMessage();
+ sending.setUserId(userId);
+ sending.setFolderName("Messages envoy\u00e9s");
+ sending.setFolderType(InternalMessagingConstants.SENDING_FOLDER_TYPE);
+ sending.setIsDeletable(false);
+ sending.setNodePath(InternalMessagingConstants.FOLDER_MESSAGE_ROOT_PATH);
+ sending.setOrderEntity(1);
+ internalFolderMessagePersistence.update(sending, false);
+
+ }
+
+ if (internalFolderMessagePersistence.findByuserId_typeFolder(userId, InternalMessagingConstants.TRASH_FOLDER_TYPE).isEmpty()) {
+ // on cree un dossier trash
+ InternalFolderMessage trash = addFolderMessage();
+ trash.setUserId(userId);
+ trash.setFolderName("Corbeille");
+ trash.setFolderType(InternalMessagingConstants.TRASH_FOLDER_TYPE);
+ trash.setIsDeletable(false);
+ trash.setNodePath(InternalMessagingConstants.FOLDER_MESSAGE_ROOT_PATH);
+ trash.setOrderEntity(2);
+ internalFolderMessagePersistence.update(trash, false);
+
+ }
+
+ if (internalFolderMessagePersistence.findByuserId_typeFolder(userId, InternalMessagingConstants.DRAFT_FOLDER_TYPE).isEmpty()) {
+ // on cree un dossier trash
+ InternalFolderMessage trash = addFolderMessage();
+ trash.setUserId(userId);
+ trash.setFolderName("Brouillon");
+ trash.setFolderType(InternalMessagingConstants.DRAFT_FOLDER_TYPE);
+ trash.setIsDeletable(false);
+ trash.setNodePath(InternalMessagingConstants.FOLDER_MESSAGE_ROOT_PATH);
+ trash.setOrderEntity(3);
+ internalFolderMessagePersistence.update(trash, false);
+
+ }
+
+
+
+ }
+
+}