Subversion Repositories bacoAlunos

Rev

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

Rev Author Line No. Line
214 jmachado 1
package pt.estgp.estgweb.services.courses;
2
 
3
import pt.utl.ist.berserk.logic.serviceManager.IService;
4
import pt.estgp.estgweb.services.data.RepositoryService;
5
import pt.estgp.estgweb.services.courseunits.LoadCourseUnitAnnouncements;
6
import pt.estgp.estgweb.services.courseunits.LoadCourseUnitService;
7
import pt.estgp.estgweb.services.expceptions.ServiceException;
8
import pt.estgp.estgweb.domain.views.CourseUnitView;
9
import pt.estgp.estgweb.domain.views.AnnouncementView;
10
import pt.estgp.estgweb.domain.views.CourseView;
11
import pt.estgp.estgweb.domain.*;
12
import pt.estgp.estgweb.domain.dao.DaoFactory;
13
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
248 jmachado 14
import pt.estgp.estgweb.utils.Dom4jUtil;
15
import pt.estgp.estgweb.Globals;
214 jmachado 16
import org.apache.log4j.Logger;
248 jmachado 17
import org.dom4j.Document;
18
import org.dom4j.DocumentException;
214 jmachado 19
 
20
import java.util.List;
21
import java.util.ArrayList;
22
import java.io.InputStream;
248 jmachado 23
import java.io.PrintWriter;
24
import java.io.StringWriter;
25
import java.net.MalformedURLException;
214 jmachado 26
 
27
import jomm.utils.FilesUtils;
28
 
29
/*
30
 * @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
31
 *
32
 *
33
 * Created at 17/Out/2003 , 23:45:24
34
 *
35
 */
36
/**
37
 * @author Jorge Machado
38
 *
39
 *
40
 * Created at 17/Out/2003 , 23:45:24
41
 *
42
 */
43
public class CoursesService implements IService
44
{
45
    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(CoursesService.class);
46
 
47
    RepositoryService repositoryService = new RepositoryService();
48
 
49
 
50
    public CourseView loadCourse(long id, boolean initUnits) throws ServiceException
51
    {
52
        Course c = DaoFactory.getCourseDaoImpl().get(id);
53
 
54
        if(c != null)
55
        {
56
            CourseView cV = new CourseView(c,initUnits);
57
            if(c.getStudiesPlan() != null)
58
            {
59
                RepositoryFileImpl repositoryFile = repositoryService.loadView(c.getStudiesPlan());
60
                cV.setStudiesPlan(repositoryFile);
61
            }
62
 
63
            return cV;
64
        }
65
        return null;
66
    }
67
 
68
    public CourseView loadCourseByCode(1.5.0/docs/api/java/lang/String.html">String code, boolean initUnits) throws ServiceException
69
    {
70
        Course c = DaoFactory.getCourseDaoImpl().findCourseByCode(code);
71
        if(c != null)
72
        {
73
            CourseView cV = new CourseView(c,initUnits);
74
            if(c.getStudiesPlan() != null)
75
            {
76
                RepositoryFileImpl repositoryFile = repositoryService.loadView(c.getStudiesPlan());
77
                cV.setStudiesPlan(repositoryFile);
78
            }
79
            return cV;
80
        }
81
        return null;
82
    }
83
 
84
    public CourseView submitCourse(CourseView courseView,
85
                                   5+0%2Fdocs%2Fapi+InputStream">InputStream stream,
86
                                   1.5.0/docs/api/java/lang/String.html">String name,
87
                                   int size,
88
                                   1.5.0/docs/api/java/lang/String.html">String contentType,
89
                                   UserSession userSession) throws ServiceException
90
    {
91
        Course c;
92
        if(courseView.getId() > 0)
93
            c = DaoFactory.getCourseDaoImpl().get(courseView.getId());
94
        else
95
        {
96
            c = DomainObjectFactory.createCourseImpl();
97
            DaoFactory.getCourseDaoImpl().save(c);
98
        }
99
 
248 jmachado 100
        1.5.0/docs/api/java/lang/String.html">String htmlTrasformationResult = null;
101
 
214 jmachado 102
        if(stream != null && size > 0)
103
        {
248 jmachado 104
            try
105
            {
106
                5+0%2Fdocs%2Fapi+Document">Document dom = Dom4jUtil.parse(stream);
107
                1.5.0/docs/api/java/lang/String.html">String html = Dom4jUtil.styleDocument(dom, Globals.TEMPLATE_COURSE_XSL_PATH);      
108
                c.setCacheWebDocument(html);
109
            }
110
            catch (1.5.0/docs/api/java/lang/Exception.html">Exception e)
111
            {
112
                1.5.0/docs/api/java/io/StringWriter.html">StringWriter writer = new 1.5.0/docs/api/java/io/StringWriter.html">StringWriter();
113
                1.5.0/docs/api/java/io/PrintWriter.html">PrintWriter printWriter = new 1.5.0/docs/api/java/io/PrintWriter.html">PrintWriter(writer);
114
                e.printStackTrace(printWriter);
115
                htmlTrasformationResult = "<div class=\"error\"><pre>" + e.toString() + "\n" + printWriter.toString() + "</pre></div>";
116
                printWriter.close();
117
            }
214 jmachado 118
            1.5.0/docs/api/java/lang/String.html">String extension = FilesUtils.getExtension(name);
119
            if(c.getStudiesPlan() == null)
120
            {
121
                1.5.0/docs/api/java/lang/String.html">String identifier = repositoryService.storeRepositoryFile(stream, contentType, extension, size, name, "course.studies.plan" + c.getName(), ResourceAccessControlEnum.publicDomain,userSession);
122
                c.setStudiesPlan(identifier);
123
            }
124
            else
125
            {
126
                repositoryService.updateRepositoryFile(c.getStudiesPlan(), stream, contentType, extension, size, name, "course.studies.plan " + c.getName(), ResourceAccessControlEnum.publicDomain);
127
            }
128
        }
129
        courseView.persistViewInObject(c);
248 jmachado 130
        CourseView cv = loadCourse(c.getId(),false);
131
        cv.setHtmlResult(htmlTrasformationResult);
132
        return cv;
214 jmachado 133
    }
134
 
135
    public List<CourseView> loadCourses() throws ServiceException
136
    {
137
        List<Course> courses = DaoFactory.getCourseDaoImpl().findAllOrderByName();
138
        List<CourseView> courseViews = new ArrayList<CourseView>();
139
        for(Course c: courses)
140
        {
141
            CourseView courseView = new CourseView(c);
142
            courseViews.add(courseView);
143
        }
144
        return courseViews;
145
    }
146
 
147
 
148
}