1
2
3
4
5
6 package com.hack23.cia.service.impl.admin;
7
8 import com.hack23.cia.model.application.impl.common.Agency;
9 import com.hack23.cia.model.application.impl.common.ImageContent;
10 import com.hack23.cia.model.application.impl.common.Language;
11 import com.hack23.cia.model.application.impl.common.LanguageContent;
12 import com.hack23.cia.model.application.impl.common.Portal;
13 import com.hack23.cia.model.application.impl.common.LanguageContent.LanguageContentType;
14 import com.hack23.cia.service.dao.AgencyDAO;
15 import com.hack23.cia.service.dao.ResourceDAO;
16 import com.hack23.cia.service.impl.common.ActivityService;
17 import com.hack23.cia.service.impl.common.ChartService;
18
19 /***
20 * The Class AdminServiceImpl.
21 */
22 public class AdminServiceImpl implements AdminService {
23
24 /*** The activity service. */
25 private final ActivityService activityService;
26
27 /*** The agency dao. */
28 private final AgencyDAO agencyDAO;
29
30 /*** The agency id. */
31 private final long agencyId = 1;
32
33 /*** The agency name. */
34 private final String agencyName = "Default Agency name";
35
36 /*** The chart service. */
37 private final ChartService chartService;
38
39 /*** The resource dao. */
40 private final ResourceDAO resourceDAO;
41
42 /*** The task service. */
43 private final TaskService taskService;
44
45 /***
46 * Instantiates a new admin service impl.
47 *
48 * @param agencyDAO the agency dao
49 * @param resourceDAO the resource dao
50 * @param taskService the task service
51 * @param chartService the chart service
52 * @param activityService the activity service
53 */
54 public AdminServiceImpl(final AgencyDAO agencyDAO,final ResourceDAO resourceDAO,
55 final TaskService taskService, final ChartService chartService,
56 final ActivityService activityService) {
57 super();
58 this.agencyDAO = agencyDAO;
59 this.resourceDAO = resourceDAO;
60 this.taskService = taskService;
61 this.chartService = chartService;
62 this.activityService = activityService;
63 }
64
65
66
67
68 @Override
69 public final Agency addAgencyLanguageContent(final Agency agency, final Language language,final String key, final String content) {
70 final LanguageContent languageContent = new LanguageContent();
71 languageContent.setLanguage(language);
72 languageContent.setLanguageContentType(LanguageContentType.Agency);
73 languageContent.setContent(content);
74 languageContent.setContentPropertyName(key);
75 languageContent.setDescription("Default description");
76 resourceDAO.save(languageContent);
77 language.getLanguageContents().add(languageContent);
78 agency.getLanguageContent().add(languageContent);
79 return agencyDAO.save(agency);
80 }
81
82
83
84
85
86
87
88
89 @Override
90 public final Agency addLanguage(final Agency agency) {
91 final Agency loadAgency = loadAgency();
92 final Language language = new Language();
93 language.setName("Default");
94 language.setShortCode("default");
95 language.setActiveByDefault(false);
96 language.setUsageOrder(100);
97 loadAgency.getLanguages().add(language);
98 return agencyDAO.save(loadAgency);
99 }
100
101
102
103
104 @Override
105 public final LanguageContent addLanguageContent(final Agency agency, final Language language) {
106 final LanguageContent languageContent = new LanguageContent();
107 languageContent.setLanguage(language);
108 languageContent.setLanguageContentType(LanguageContentType.Agency);
109 languageContent.setContent("Default value");
110 languageContent.setContentPropertyName("default.property.name");
111 languageContent.setDescription("Default description");
112 agency.getLanguageContent().add(languageContent);
113 agencyDAO.save(agency);
114 return languageContent;
115 }
116
117
118
119
120
121
122
123
124 @Override
125 public final Agency addPortal(final Agency agency) {
126 final Agency loadAgency = loadAgency();
127 final Portal portal = new Portal();
128 portal.setAgency(loadAgency);
129 portal.setName("Default portal");
130 portal.setTitleDescription("Default title description");
131 portal.setMatchesUrl("Default url");
132 portal.setActiveByDefault(false);
133 portal.setUsageOrder(100);
134 loadAgency.getPortals().add(portal);
135 return agencyDAO.save(loadAgency);
136 }
137
138
139
140
141
142
143 @Override
144 public final ImageContent createResponseTimeGraph() {
145 final ImageContent imageContentByFileName = this.resourceDAO.getImageContentByFileName("responseTimeByHour.jpg");
146 resourceDAO.delete(imageContentByFileName);
147
148 final ImageContent createResponseTimeGraph = this.chartService.createResponseTimeGraph(
149 this.activityService.getResponseTimeHistory());
150 return (ImageContent) resourceDAO.save(createResponseTimeGraph);
151 }
152
153
154
155
156
157
158
159
160 @Override
161 public final Agency deleteLanguage(final Agency agency,
162 final Language language) {
163 final Agency loadAgency = loadAgency();
164 final Language updatedLanguage = loadAgency.findLanguage(language.getId());
165 loadAgency.getLanguages().remove(updatedLanguage);
166
167 LanguageContent[] contents = new LanguageContent[updatedLanguage.getLanguageContents().size()];
168 contents =updatedLanguage.getLanguageContents().toArray(contents);
169 for (final LanguageContent languageContent : contents) {
170 loadAgency.getLanguageContent().remove(languageContent);
171 updatedLanguage.getLanguageContents().remove(languageContent);
172 resourceDAO.delete(languageContent);
173 }
174
175 final Agency updatedAgency = agencyDAO.save(loadAgency);
176 resourceDAO.delete(updatedLanguage);
177 return updatedAgency;
178 }
179
180
181
182
183 @Override
184 public final Agency deleteLanguageContent(final Agency agency,
185 final LanguageContent languageContent) {
186 final Agency loadedAgency = loadAgency(agency.getId());
187 final LanguageContent deleteLanguageContent = loadedAgency.findLanguageContent(languageContent.getId());
188 final Language language = deleteLanguageContent.getLanguage();
189 language.getLanguageContents().remove(deleteLanguageContent);
190 deleteLanguageContent.setLanguage(null);
191
192 loadedAgency.getLanguageContent().remove(deleteLanguageContent);
193 final Agency updatedAgency = agencyDAO.save(loadedAgency);
194 resourceDAO.save(language);
195 resourceDAO.delete(deleteLanguageContent);
196
197 return updatedAgency;
198 }
199
200
201
202
203
204
205
206
207 @Override
208 public final Agency deletePortal(final Portal portal) {
209 final Agency agency = loadAgency();
210 final Portal deletePortal = agency.getPortalById(portal.getId());
211 deletePortal.setAgency(null);
212 agency.getPortals().remove(deletePortal);
213
214 final Agency updatedAgency = agencyDAO.save(agency);
215 resourceDAO.delete(deletePortal);
216
217 return updatedAgency;
218 }
219
220
221
222
223
224
225 @Override
226 public final ImageContent getRecentActionsGraph() {
227 final ImageContent imageContentByFileName = this.resourceDAO.getImageContentByFileName("ActionsByHour.jpg");
228 resourceDAO.delete(imageContentByFileName);
229
230 final ImageContent createRecentActionsGraph = this.chartService.createRecentActionsGraph(
231 this.activityService.getActionEventHistory());
232 return (ImageContent) resourceDAO.save(createRecentActionsGraph);
233 }
234
235
236
237
238
239
240 @Override
241 public final Agency loadAgency() {
242 Agency agency = this.agencyDAO.load(agencyId);
243 if (agency == null) {
244 agency = new Agency();
245 agency.setName(agencyName);
246 agencyDAO.save(agency);
247 }
248 return agency;
249 }
250
251
252
253
254 @Override
255 public final Agency loadAgency(final Long agencyId) {
256 return this.agencyDAO.load(agencyId);
257 }
258
259
260
261
262
263
264 @Override
265 public final void startUpdateJob() {
266 this.taskService.execute();
267 }
268
269
270
271
272
273
274
275
276 @Override
277 public final Agency updateAgency(final Agency agency) {
278 final Agency loadAgency = loadAgency(agency.getId());
279
280 if (agency != null) {
281 loadAgency.setName(agency.getName());
282 }
283
284 agencyDAO.save(loadAgency);
285 return loadAgency;
286 }
287
288
289
290
291
292
293
294
295 @Override
296 public final Agency updateLanguage(final Agency agency,
297 final Language language) {
298 final Agency loadAgency = loadAgency();
299 final Language updatedLanguage = loadAgency.findLanguage(language.getId());
300 updatedLanguage.setName(language.getName());
301 updatedLanguage.setShortCode(language.getShortCode());
302 updatedLanguage.setActiveByDefault(language.getActiveByDefault());
303 updatedLanguage.setUsageOrder(language.getUsageOrder());
304
305 return agencyDAO.save(loadAgency);
306 }
307
308
309
310
311 @Override
312 public final Agency updateLanguageContent(final Agency agency,
313 final LanguageContent languageContent) {
314 final Agency loadedAgency = loadAgency(agency.getId());
315 final LanguageContent updatedLanguageContent = loadedAgency.findLanguageContent(languageContent.getId());
316 updatedLanguageContent.setContent(languageContent.getContent());
317 updatedLanguageContent.setDescription(languageContent.getDescription());
318
319 final Agency updatedAgency = agencyDAO.save(loadedAgency);
320 resourceDAO.save(updatedLanguageContent);
321
322 return updatedAgency;
323 }
324
325
326
327
328
329
330
331
332 @Override
333 public final Portal updatePortal(final Portal portal) {
334 final Agency loadAgency = loadAgency();
335
336 final Portal updatedPortal = loadAgency.getPortalById(portal.getId());
337 updatedPortal.setName(portal.getName());
338 updatedPortal.setTitleDescription(portal.getTitleDescription());
339 updatedPortal.setMatchesUrl(portal.getMatchesUrl());
340 updatedPortal.setActiveByDefault(portal.getActiveByDefault());
341 updatedPortal.setUsageOrder(portal.getUsageOrder());
342
343 agencyDAO.save(loadAgency);
344 return updatedPortal;
345 }
346 }