Subversion Repositories bacoAlunos

Rev

Rev 1524 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1524 jmachado 1
package pt.estgp.estgweb.services.events;
2
 
3
import jomm.utils.FilesUtils;
4
import org.apache.log4j.Logger;
5
import org.apache.struts.upload.FormFile;
6
import pt.estgp.estgweb.domain.EventClass;
7
import pt.estgp.estgweb.domain.EventFormacoes;
8
import pt.estgp.estgweb.domain.EventGeneric;
9
import pt.estgp.estgweb.domain.UserSession;
10
import pt.estgp.estgweb.domain.dao.DaoFactory;
11
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
12
import pt.estgp.estgweb.services.data.RepositoryService;
13
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException;
14
import pt.utl.ist.berserk.logic.serviceManager.IService;
15
 
16
import java.io.IOException;
17
 
18
/**
19
 * Created by jorgemachado on 04/10/16.
20
 */
21
public class EventsService implements IService
22
{
23
    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(EventsService.class);
24
 
25
    public void save(EventClass eventClass, UserSession userSession)
26
    {
27
        if(eventClass.getId() <= 0)
28
        {
29
            DaoFactory.getEventClassDaoImpl().save(eventClass);
30
        }
31
        else
32
        {
33
            EventClass persistent = DaoFactory.getEventClassDaoImpl().load(eventClass.getId());
34
            persistent.setName(eventClass.getName());
35
            persistent.setDescription(eventClass.getDescription());
36
            persistent.setManagersRole(eventClass.getManagersRole());
37
            persistent.setEventosFormacoes(eventClass.isEventosFormacoes());
38
            persistent.setEventosGenericos(eventClass.isEventosGenericos());
39
        }
40
    }
41
 
42
    public void delete(long eventClassId, UserSession userSession) throws NotAuthorizedException {
43
 
44
        EventClass persistent = DaoFactory.getEventClassDaoImpl().load(eventClassId);
45
        if(persistent.getEvents().size() > 0)
46
        {
47
            throw new NotAuthorizedException("Existem eventos nesta classe");
48
        }
49
        else
50
        {
51
            DaoFactory.getEventClassDaoImpl().delete(persistent);
52
        }
53
    }
54
 
55
    public void saveEvent(long eventClassId,EventGeneric event, FormFile flyer, UserSession userSession)
56
    {
57
        1.5.0/docs/api/java/lang/System.html">System.out.println("Serviço de gravação de eventos OK");
58
        1.5.0/docs/api/java/lang/System.html">System.out.println(event.getDataAberturaFormulario());
59
        1.5.0/docs/api/java/lang/System.html">System.out.println(event.getDataFechoFormulario());
60
        1.5.0/docs/api/java/lang/System.html">System.out.println(event.getDataPublicacao());
61
        1.5.0/docs/api/java/lang/System.html">System.out.println(event.getDataInicio());
62
        EventClass eventClass;
63
        EventGeneric eventPersistent;
64
        if(event.getId() <= 0)
65
        {
66
            eventClass = DaoFactory.getEventClassDaoImpl().load(eventClassId);
67
            event.setEventClass(eventClass);
68
            event.setOwner(userSession.getUser());
69
            if(event instanceof EventFormacoes)
70
            {
71
                DaoFactory.getEventFormacoesDaoImpl().save((EventFormacoes) event);
72
            }
73
            else if(event instanceof  EventGeneric)
74
            {
75
                DaoFactory.getEventGenericDaoImpl().save(event);
76
            }
77
            updateFlyer(event, flyer, userSession);
78
            eventPersistent = event;
79
        }
80
        else
81
        {
82
            eventPersistent = DaoFactory.getEventGenericDaoImpl().load(event.getId());
83
            eventClass = eventPersistent.getEventClass();
84
            updateEventFields(event,eventPersistent,flyer,userSession);
85
        }
86
        //todo falta docentes apenas depois de estar o evento gravado por razões de já haver unidade
87
        logger.info("Propiedades do Evento Gravadas e Flyer actualizado, vamos iniciar operações de actividade curricular");
88
        //EVENTO SALVO
89
 
90
    }
91
 
92
    private void updateEventFields(EventGeneric event, EventGeneric eventPersistent,FormFile flyer,UserSession userSession)
93
    {
94
        eventPersistent.setAtivo(event.isAtivo());
95
 
96
        //CONTROLO
97
        eventPersistent.setDataPublicacao(event.getDataPublicacao());
98
        eventPersistent.setDataAberturaFormulario(event.getDataAberturaFormulario());
99
        eventPersistent.setDataFechoFormulario(event.getDataFechoFormulario());
100
        eventPersistent.setCategory(event.getCategory());
101
        eventPersistent.setSubCategory(event.getSubCategory());
102
        eventPersistent.setRegisteredUsersOnly(event.isRegisteredUsersOnly());
103
 
104
 
105
        eventPersistent.setTitle(event.getTitle());
106
        eventPersistent.setDescription(event.getDescription());
107
        eventPersistent.setObservacoes(event.getObservacoes());
108
        eventPersistent.setLocais(event.getLocais());
109
        eventPersistent.setDataInicio(event.getDataInicio());
110
        eventPersistent.setPreInformation(event.getPreInformation());
111
        eventPersistent.setAfterRegisterInformation(event.getAfterRegisterInformation());
112
 
113
        updateFlyer(eventPersistent, flyer, userSession);
114
 
115
 
116
        eventPersistent.setDataNascimento(event.isDataNascimento());
117
        eventPersistent.setEmpresa(event.isEmpresa());
118
        eventPersistent.setEscolaridade(event.isEscolaridade());
119
        eventPersistent.setProfissao(event.isProfissao());
120
        eventPersistent.setSexo(event.isSexo());
121
        eventPersistent.setTelefone1(event.isTelefone1());
122
        eventPersistent.setTelefone2(event.isTelefone2());
123
        eventPersistent.setPais(event.isPais());
124
        eventPersistent.setMorada(event.isMorada());
125
        eventPersistent.setNif(event.isNif());
126
        eventPersistent.setBi(event.isBi());
127
 
128
        if(event instanceof EventFormacoes)
129
        {
130
            EventFormacoes eventFormacoes = (EventFormacoes) event;
131
            EventFormacoes eventPersistentFormacoes = (EventFormacoes) eventPersistent;
132
 
133
            eventPersistentFormacoes.setReferencia(eventFormacoes.getReferencia());
134
            eventPersistentFormacoes.setUnidadeOrganica(eventFormacoes.getUnidadeOrganica());
135
            eventPersistentFormacoes.setLocalDeRealizacao(eventFormacoes.getLocalDeRealizacao());
136
            eventPersistentFormacoes.setDominio(eventFormacoes.getDominio());
137
            eventPersistentFormacoes.setOutroDominio(eventFormacoes.getOutroDominio());
138
            eventPersistentFormacoes.setDestinatarios(eventFormacoes.getDestinatarios());
139
            eventPersistentFormacoes.setConteudos(eventFormacoes.getConteudos());
140
 
141
            //CONTROLO FINANCEIRO
142
            eventPersistentFormacoes.setStatus(eventFormacoes.getStatus());
143
            eventPersistentFormacoes.setNumeroVagas(eventFormacoes.getNumeroVagas());
144
            eventPersistentFormacoes.setDuracaoHoras(eventFormacoes.getDuracaoHoras());
145
            eventPersistentFormacoes.setEcts(eventFormacoes.getEcts());
146
            eventPersistentFormacoes.setDiasDuracao(eventFormacoes.getDiasDuracao());
147
            eventPersistentFormacoes.setCustoFormacao(eventFormacoes.getCustoFormacao());
148
            eventPersistentFormacoes.setPrecoFormando(eventFormacoes.getPrecoFormando());
149
            eventPersistentFormacoes.setPercentagemMinimaLucro(eventFormacoes.getPercentagemMinimaLucro());
150
        }
151
    }
152
 
153
    private void updateFlyer(EventGeneric eventPersistent, FormFile flyer, UserSession userSession) {
154
        if(flyer != null && flyer.getFileSize() > 0)
155
        {
156
            RepositoryService repositoryService = new RepositoryService();
157
            if(eventPersistent.getFlyerRepositoryStream() != null && eventPersistent.getFlyerRepositoryStream().trim().length() > 0)
158
            {
159
                try {
160
                    repositoryService.updateRepositoryFile(
161
                            eventPersistent.getFlyerRepositoryStream(),
162
                            flyer.getInputStream(),
163
                            flyer.getContentType(),
164
                            FilesUtils.getExtension(flyer.getFileName()),
165
                            flyer.getFileSize(),
166
                            flyer.getFileName(),
167
                            "Flyer de formacao " + eventPersistent.getTitle(),
168
                            ResourceAccessControlEnum.publicDomain
169
                            );
170
                } catch (1.5.0/docs/api/java/io/IOException.html">IOException e) {
171
                    logger.error(e,e);
172
                }
173
            }
174
            else
175
            {
176
                try {
177
                   1.5.0/docs/api/java/lang/String.html">String repositoryIdentifier = repositoryService.storeRepositoryFile(
178
                            flyer.getInputStream(),
179
                            flyer.getContentType(),
180
                            FilesUtils.getExtension(flyer.getFileName()),
181
                            flyer.getFileSize(),
182
                            flyer.getFileName(),
183
                            "Flyer de formacao " + eventPersistent.getTitle(),
184
                            ResourceAccessControlEnum.publicDomain,
1703 jmachado 185
                           null, userSession
1524 jmachado 186
                    );
187
                    eventPersistent.setFlyerRepositoryStream(repositoryIdentifier);
188
                } catch (1.5.0/docs/api/java/io/IOException.html">IOException e) {
189
                    logger.error(e,e);
190
                }
191
            }
192
        }
193
    }
194
}