Subversion Repositories bacoAlunos

Rev

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

package pt.estgp.estgweb.services.courseunits;

import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.CourseUnitSummary;
import pt.estgp.estgweb.domain.RepositoryFile;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.AnnouncementView;
import pt.estgp.estgweb.domain.views.CourseUnitSummaryView;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.domain.views.CourseView;
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.utl.ist.berserk.logic.serviceManager.IService;

import java.util.ArrayList;
import java.util.List;

/*
 * @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 LoadCourseUnitService implements IService
{

    RepositoryService repositoryService = new RepositoryService();
    LoadCourseUnitAnnouncements loadCourseUnitAnnouncements = new LoadCourseUnitAnnouncements();

    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(LoadCourseUnitService.class);

    public CourseUnitView run(long id, boolean initTeachers, boolean initStudents, boolean initBlog, UserSession userSession) throws ServiceException
    {
        CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id);
        c.setCourseUnitEvaluation(DaoFactory.getCourseUnitEvaluationDaoImpl().narrow(c.getCourseUnitEvaluation()));
        c.setCourseUnitProgram(DaoFactory.getCourseUnitProgramDaoImpl().narrow(c.getCourseUnitProgram()));

        if(c == null)
            return null;

        CourseUnitView cV = new CourseUnitView(c,initTeachers,initStudents,initBlog);

        if(c.getProgramStreamId()!= null)
        {
            RepositoryFile repositoryFile = repositoryService.loadView(c.getProgramStreamId());
            if(repositoryFile != null)
            {
                cV.setProgramSize(repositoryFile.getLastVersion().getSize()/1024);
                cV.setExtension(repositoryFile.getLastVersion().getExtension());
            }
        }

        if(initTeachers)
        {
            List<AnnouncementView> announcementViews = loadCourseUnitAnnouncements.run(id,userSession);
            cV.setAnnouncements(announcementViews);

            List<CourseUnitSummaryView> summaryViews = new ArrayList<CourseUnitSummaryView>();
            if(c.getSummaries() != null)
            {
                for(CourseUnitSummary summary: c.getSummaries())
                {
                    summaryViews.add(new CourseUnitSummaryView(summary));
                }
            }
            cV.setSummaries(summaryViews);
        }
        return cV;
    }


    public CourseUnitView loadCourseUnitViewAndCourse(long id, boolean initTeachers, boolean initStudents, boolean initBlog, boolean initCourseView, UserSession userSession) throws ServiceException
    {

        CourseUnitView cV = run(id,initTeachers,initStudents,initBlog,userSession);
        if(initCourseView)
        {
            CourseView coV = new CourseView(cV.getCourseUnit().getCourse());
            cV.setCourseView(coV);
        }
        return cV;
    }


}