Subversion Repositories bacoAlunos

Rev

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

Rev Author Line No. Line
90 jmachado 1
package pt.estgp.estgweb.services.announcements;
2
 
3
import pt.utl.ist.berserk.logic.serviceManager.IService;
4
import pt.estgp.estgweb.domain.UserSession;
5
import pt.estgp.estgweb.domain.Announcement;
6
import pt.estgp.estgweb.domain.UserImpl;
7
import pt.estgp.estgweb.domain.UserSessionImpl;
8
import pt.estgp.estgweb.domain.dao.DaoFactory;
9
import pt.estgp.estgweb.services.common.*;
10
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults;
11
import pt.estgp.estgweb.services.common.impl.DefaultResult;
156 jmachado 12
import pt.estgp.estgweb.services.common.impl.DefaultToDo;
90 jmachado 13
import pt.estgp.estgweb.Globals;
14
import org.apache.log4j.Logger;
15
 
16
import java.util.List;
17
import java.util.ArrayList;
18
 
19
import jomm.dao.impl.AbstractDao;
20
 
21
/**
22
 * @author Jorge Machado
135 jmachado 23
 * @date 25/Apr/2008
24
 * @time 18:01:54
25
 * @see pt.estgp.estgweb.web
90 jmachado 26
 */
135 jmachado 27
public class AnnouncementsCommonServices implements IService, IModuleCommonServices
28
{
29
 
90 jmachado 30
    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(AnnouncementsCommonServices.class);
31
 
135 jmachado 32
    public int countSearch(1.5.0/docs/api/java/lang/String.html">String search, SearchTypeEnum searchType, UserSession userSession)
33
    {
34
        return 0;  // todo To change body of implemented methods use File | Settings | File Templates.
90 jmachado 35
    }
36
 
135 jmachado 37
    public ISearchResults search(1.5.0/docs/api/java/lang/String.html">String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession)
38
    {
90 jmachado 39
        DefaultSearchResults searchResults = new DefaultSearchResults();
40
        searchResults.setModule(ModuleEnum.Announcements);
41
        List<String> roles;
135 jmachado 42
        if (userSession == null || userSession.getUser() == null || ((UserImpl) userSession.getUser()).getRolesList() == null || ((UserImpl) userSession.getUser()).getRolesList().size() == 0)
43
        {
90 jmachado 44
            roles = new ArrayList<String>();
45
            roles.add(Globals.ALL_ROLE);
46
        }
47
        else
92 jmachado 48
            roles = ((UserImpl) userSession.getUser()).getRolesList();
90 jmachado 49
 
156 jmachado 50
        boolean internal = true;
140 fvelez 51
        if (userSession.getUser() == null)
52
            internal = false;
53
        searchResults.setTotalResults(DaoFactory.getAnnouncementDaoImpl().countAnnouncements(search, searchType, roles, null,internal));
135 jmachado 54
        if (searchResults.getTotalResults() > 0)
55
        {
140 fvelez 56
            List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().searchAnnouncements(search, searchType, maxResults, page, roles, null,internal);
92 jmachado 57
            if (announcements == null)
58
                return searchResults;
135 jmachado 59
            for (Announcement a : announcements)
60
            {
92 jmachado 61
                DefaultResult defaultResult = new DefaultResult();
62
                defaultResult.setTitle(a.getTitle());
63
                defaultResult.setSubTitle("announcements.type." + a.getType());
64
                defaultResult.setSubTitleKey(true);
65
                defaultResult.setText(a.getText());
66
                defaultResult.setUrl("/loadAnnouncement.do?id=" + a.getId() + "&dispatch=load");
67
                searchResults.addResult(defaultResult);
68
            }
90 jmachado 69
        }
70
        return searchResults;
71
    }
72
 
135 jmachado 73
    public int countToDo(UserSession userSession)
74
    {
75
        return 0;  //todo To change body of implemented methods use File | Settings | File Templates.
90 jmachado 76
    }
77
 
156 jmachado 78
    /**
79
     * Not implemented
80
     * @param userSession
81
     * @return
82
     */
135 jmachado 83
    public IToDoCat getToDo(UserSession userSession)
84
    {
156 jmachado 85
        return null;
90 jmachado 86
    }
87
 
156 jmachado 88
    public List<IToDo> getAllToDos(UserSession userSession)
89
    {
90
        List<IToDo> todos = new ArrayList<IToDo>();
91
        if(userSession.getUser().hasRole(Globals.ANNOUNCEMENTS_VALIDATOR_ROLES))
92
        {
93
            List<Announcement> invalidAnnouncements = DaoFactory.getAnnouncementDaoImpl().loadInvalidAnnouncements();
94
            for(Announcement a: invalidAnnouncements)
95
            {
96
                DefaultToDo defaultToDo = new DefaultToDo(a.getTitle(),a.getTargetRoles(),((UserImpl)a.getOwner()).getUsername(), "announcements.type." + a.getType(),"/user/loadAnnouncementFromServiceZone.do?dispatch=edit&separator=4&id=" + a.getId());
97
                todos.add(defaultToDo);
98
            }
99
        }
100
        return todos;
101
    }
102
 
135 jmachado 103
    public static void main(1.5.0/docs/api/java/lang/String.html">String[] args)
104
    {
90 jmachado 105
        AbstractDao.getCurrentSession().beginTransaction();
106
        UserSession sess = new UserSessionImpl();
107
        sess.setUser(new UserImpl());
108
        sess.getUser().setRoles("all");
92 jmachado 109
        ISearchResults searchResults = new AnnouncementsCommonServices().search("teste", SearchTypeEnum.AllWords, 0, 10, sess);
135 jmachado 110
        for (IResult result : searchResults.getResults())
111
        {
92 jmachado 112
            1.5.0/docs/api/java/lang/System.html">System.out.println("title:" + result.getTitle());
113
            1.5.0/docs/api/java/lang/System.html">System.out.println("subTitle:" + result.getSubTitle());
114
            1.5.0/docs/api/java/lang/System.html">System.out.println("text:" + result.getText());
90 jmachado 115
            1.5.0/docs/api/java/lang/System.html">System.out.println("url" + result.getUrl());
116
            1.5.0/docs/api/java/lang/System.html">System.out.println("bestFragments" + result.getBestFragments());
117
        }
118
        AbstractDao.commit();
119
    }
120
}