Subversion Repositories bacoAlunos

Rev

Rev 1306 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.courseunits;

import jomm.utils.FilesUtils;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.RepositoryFileImpl;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.utl.ist.berserk.logic.serviceManager.IService;

import java.io.InputStream;

/*
 * @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
 *
 *
 * Created at 17/Out/2003 , 23:45:24
 *
 */

/**
 * @author Jorge Machado
 *
 *
 * Created at 17/Out/2003 , 23:45:24
 *
 */

public class UpdateCourseUnitService implements IService
{

    RepositoryService repositoryService = new RepositoryService();
    LoadCourseUnitService loadCourseUnitService = new LoadCourseUnitService();

    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(UpdateCourseUnitService.class);

    public CourseUnitView run(CourseUnitView courseUnitView,
                              5+0%2Fdocs%2Fapi+InputStream">InputStream stream,
                              1.5.0/docs/api/java/lang/String.html">String name,
                              int size,
                              1.5.0/docs/api/java/lang/String.html">String contentType,
                              UserSession userSession)
            throws ServiceException
    {


        CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(courseUnitView.getId());

        courseUnitView.persistViewInObject(c);
        RepositoryFileImpl repositoryFile = null;
        if(stream != null && size > 0)
        {
            1.5.0/docs/api/java/lang/String.html">String extension = FilesUtils.getExtension(name);
            if(c.getProgramStreamId() == null)
            {
                1.5.0/docs/api/java/lang/String.html">String identifier = repositoryService.storeRepositoryFile(stream, contentType, extension, size, name, "courseunit.program.description" + c.getName(), ResourceAccessControlEnum.publicDomain,userSession);
                c.setProgramStreamId(identifier);
            }
            else
            {
                repositoryService.updateRepositoryFile(c.getProgramStreamId(), stream, contentType, extension, size, name, "courseunit.program.description " + c.getName(), ResourceAccessControlEnum.publicDomain);
            }

        }
        if(c.getProgramStreamId() != null)
        {
            repositoryFile = repositoryService.loadView(c.getProgramStreamId());
        }
        CourseUnitView cV = new CourseUnitView(c);
        if(repositoryFile != null)
        {
            cV.setProgramSize(repositoryFile.getLastVersion().getSize()/1024);
            cV.setExtension(repositoryFile.getLastVersion().getExtension());
        }
        return loadCourseUnitService.run(cV.getId(),true,false,false,userSession);
    }


    public void delete(long id,
                              UserSession userSession)
            throws ServiceException
    {
        CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id);
        c.setStatus(false);
    }



}