package edu.asu.spring.quadriga.service.workspace.impl;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import edu.asu.spring.quadriga.dto.WorkspaceDTO;
import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException;
import edu.asu.spring.quadriga.service.workspace.IArchiveWSManager;
/**
* Class implements {@link IArchiveWSManager}
* for archiving and deactivating workspace associated with project.
* @implements IArchiveWSManager
* @author Julia Damerow, Kiran Kumar Batna
*/
@Service
public class ArchiveWSManager extends BaseWSManager implements IArchiveWSManager
{
/**
* This will archive the requested workspace.[archive = 1 is supplied to database]
* @param workspaceIdList - Comma separated workspace Id's.
* @param wsUser
* @return String - errmsg containing blank on success and error message on failure.
* @throws QuadrigaStorageException
* @author Julia Damerow, Kiran Kumar Batna
*/
@Override
@Transactional
public void archiveWorkspace(String workspaceIdList,String wsUser) {
List<String> wsIds = Arrays.asList(workspaceIdList.split(","));
for (String id : wsIds) {
WorkspaceDTO wsDto = workspaceDao.getDTO(id.trim());
wsDto.setIsarchived(true);
wsDto.setUpdatedby(wsUser);
wsDto.setUpdateddate(new Date());
workspaceDao.updateDTO(wsDto);
}
}
/**
* This will activate the requested archived workspace.[archive = 0 will be supplied to database.]
* @param workspaceIdList - Comma separated workspace Id's.
* @param wsUser
* @return String - errmsg containing blank on success and error message on failure.
* @throws QuadrigaStorageException
* @author Julia Damerow, Kiran Kumar Batna
*/
@Override
@Transactional
public void unArchiveWorkspace(String workspaceIdList,String wsUser) {
List<String> wsIds = Arrays.asList(workspaceIdList.split(","));
for (String id : wsIds) {
WorkspaceDTO wsDto = workspaceDao.getDTO(id.trim());
wsDto.setIsarchived(false);
wsDto.setUpdatedby(wsUser);
wsDto.setUpdateddate(new Date());
workspaceDao.updateDTO(wsDto);
}
}
/**
* This will deactivate the requested workspace.[deactivate = 1 will be supplied to database]
* @param workspaceIdList - Comma separated workspace Id's.
* @param wsUser
* @return String - errmsg containing blank on success and error message on failure.
* @throws QuadrigaStorageException
* @author Julia Damerow, Kiran Kumar Batna
*/
@Override
@Transactional
public void deactivateWorkspace(String workspaceIdList,String wsUser) {
List<String> wsIds = Arrays.asList(workspaceIdList.split(","));
for (String id : wsIds) {
WorkspaceDTO wsDto = workspaceDao.getDTO(id.trim());
wsDto.setIsdeactivated(true);
wsDto.setUpdatedby(wsUser);
wsDto.setUpdateddate(new Date());
workspaceDao.updateDTO(wsDto);
}
}
/**
* This will activate the requested deactivated workspace.
* [deactivate = 0 will be supplied to database]
* @param workspaceIdList - Comma separated workspace Id's.
* @param wsUser
* @return String - errmsg containing blank on success and error message on failure.
* @throws QuadrigaStorageException
* @author Julia Damerow, Kiran Kumar Batna
*/
@Override
@Transactional
public void activateWorkspace(String workspaceIdList,String wsUser) throws QuadrigaStorageException
{
List<String> wsIds = Arrays.asList(workspaceIdList.split(","));
for (String id : wsIds) {
WorkspaceDTO wsDto = workspaceDao.getDTO(id.trim());
wsDto.setIsdeactivated(false);
wsDto.setUpdatedby(wsUser);
wsDto.setUpdateddate(new Date());
workspaceDao.updateDTO(wsDto);
}
}
}