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 | } |