Skip to content

Commit

Permalink
change layout logic for timed actions added and refactored schedule lgo
Browse files Browse the repository at this point in the history
  • Loading branch information
SakalAndrej committed Mar 4, 2018
1 parent 10eedf9 commit 330b27c
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 31 deletions.
41 changes: 31 additions & 10 deletions HomeDsBackend/src/main/java/at/htl/utils/LayoutChangerUtil.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package at.htl.utils;

import at.htl.exceptions.NoConnectionException;
import at.htl.facades.CampaignFacade;
import at.htl.facades.DataSetFieldFacade;
import at.htl.model.Campaign;
import at.htl.model.DataSet;
import at.htl.model.DataSetDataField;
import at.htl.model.Display;
import at.htl.xiboClient.DataSetApi;
import at.htl.xiboClient.DisplayApi;
Expand All @@ -10,6 +14,7 @@
import javax.inject.Inject;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;

@Stateless
public class LayoutChangerUtil {
Expand All @@ -20,18 +25,34 @@ public class LayoutChangerUtil {
@Inject
DataSetApi dataSetApi;

public void changeLayoutForAll(int layoutId) {
try {
LinkedList<Display> displays = displayApi.GetAllDisplays();
@Inject
DataSetFieldFacade dataSetFieldFacade;

@Inject
CampaignFacade campaignFacade;

/*for (int i = 0; i < displays.size(); i++) {
displayApi.ChangeLayout(displays.get(i).getDisplayGroupId(), layoutId);
}*/
displayApi.ScheduleLayout(LocalDateTime.now(),LocalDateTime.now().plusMinutes(2));
public void changeLayout(long campaignLayoutId,LocalDateTime toDate) throws NoConnectionException {
displayApi.ScheduleLayout(campaignLayoutId, LocalDateTime.now(),toDate);
dataSetApi.collectNowAll();
} catch (NoConnectionException e) {
e.printStackTrace();
}
}

/*
Wenn keine DataSets verfügbar Layout auf normal wechseln (alte kampagne löschen)
Wenn DataSets verfügbar sind dataset layout einlegen (neue kampagne anlegen)
*/
public void campaignLogic() {
if (dataSetFieldFacade.getActiveDataSetRows().size()>0) {
try {
long id = -1;
if (campaignFacade.getAll().size() <= 0 && (id = displayApi.ScheduleLayout(43,LocalDateTime.now(), LocalDateTime.MAX)) > 0) {
campaignFacade.save(new Campaign(id));
}
} catch (NoConnectionException e) {
e.printStackTrace();
}
}
else {
campaignFacade.delete(campaignFacade.getAll().get(0).getId());
}
}
}
17 changes: 16 additions & 1 deletion HomeDsBackend/src/main/java/at/htl/utils/TimeService.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
package at.htl.utils;

import at.htl.exceptions.NoConnectionException;
import at.htl.facades.CampaignFacade;
import at.htl.facades.DataSetFieldFacade;
import at.htl.model.Campaign;
import at.htl.model.DataSetDataField;
import at.htl.xiboClient.DataSetApi;
import at.htl.xiboClient.DisplayApi;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.ejb.Schedule;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Singleton
Expand All @@ -23,7 +27,16 @@ public class TimeService {
@EJB
DataSetApi dataSetApi;

@Schedule(minute = "15", hour = "22")
@EJB
DisplayApi displayApi;

@EJB
CampaignFacade campaignFacade;

@EJB
LayoutChangerUtil layoutChangerUtil;

@Schedule(minute = "*", hour = "23")
public void doWork() {
List<DataSetDataField> datafields = dataSetFieldFacade.getAll();

Expand Down Expand Up @@ -83,6 +96,8 @@ public void doWork() {
else {
System.out.println("Every min scheduler had no job :(!");
}


}

@PostConstruct
Expand Down
8 changes: 5 additions & 3 deletions HomeDsBackend/src/main/java/at/htl/web/MediaController.java
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ public void playMedia(long mediaId) {
if (widgetId > 0) {
if (mediaApi.deleteWidget(widgetId) == 200) {
if (mediaApi.editWidget(mediaId) == 200) {
layoutChangerUtil.changeLayoutForAll(39);
layoutChangerUtil.changeLayout(44,LocalDateTime.now().plusMinutes(2));
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "", "Succesfully set media to playlist"));
} else {
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "", "Error while playing medi"));
Expand All @@ -105,11 +105,13 @@ public void onSelect(SelectEvent event) {
TagCloudItem item = (TagCloudItem) event.getObject();
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Item Selected", item.getLabel());

tags = item.getLabel();

FacesContext.getCurrentInstance().addMessage(null, msg);
try {
this.updateList(tags);
if (!tags.equals(item.getLabel())) {
tags = item.getLabel();
this.updateList(tags);
}
} catch (NoConnectionException e) {
e.printStackTrace();
}
Expand Down
35 changes: 18 additions & 17 deletions HomeDsBackend/src/main/java/at/htl/xiboClient/DisplayApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,22 @@

import at.htl.enums.RequestTypeEnum;
import at.htl.exceptions.NoConnectionException;
import at.htl.model.Campaign;
import at.htl.model.Display;
import at.htl.utils.AuthentificationHandler;
import at.htl.utils.RequestHelper;
import org.json.JSONArray;
import org.json.JSONObject;

import javax.ejb.Stateless;
import javax.swing.text.DateFormatter;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.LinkedList;

import static java.time.format.DateTimeFormatter.ISO_OFFSET_DATE_TIME;

@Stateless
public class DisplayApi {

Expand Down Expand Up @@ -76,36 +71,42 @@ public LinkedList<Display> GetAllDisplays() throws NoConnectionException {
return displays;
}

public void ScheduleLayout(LocalDateTime fromDate, LocalDateTime toDate) throws NoConnectionException {
public long ScheduleLayout(long campaingLayoutId, LocalDateTime fromDate, LocalDateTime toDate) throws NoConnectionException {

Campaign act = new Campaign();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");

BufferedReader in;
LinkedList<Display> displays = new LinkedList<>();
Display act = new Display();
try {
//Get all Datasets
HttpURLConnection con = new RequestHelper()
.executeRequest(RequestTypeEnum.POST,
"eventTypeId=1&campaignId=" + 44 +
"eventTypeId=1&campaignId=" + campaingLayoutId +
"&displayOrder=0&isPriority=11&displayGroupIds[]="+14+"&fromDt="+fromDate.format(formatter)+"&toDt="+toDate.format(formatter),
new RequestHelper().BASE_URL + "api/schedule",
AuthentificationHandler.getTOKEN());

in = new BufferedReader(new InputStreamReader(con.getInputStream()));
if (con.getResponseCode()==201) {
in = new BufferedReader(new InputStreamReader(con.getInputStream()));

String output;
StringBuffer response = new StringBuffer();
while ((output = in.readLine()) != null)
{
response.append(output);
String output;
StringBuffer response = new StringBuffer();
while ((output = in.readLine()) != null) {
response.append(output);
}

JSONObject jsonObject = new JSONObject(response);
return jsonObject.getLong("campaignId");
}
else {
return -1;
}
} catch (NullPointerException ex) {
throw new NoConnectionException("Es ist kein Response vorhanden", ex);
} catch (IOException e) {
e.printStackTrace();
throw new NoConnectionException("IO Exception", e);
}

}

}

0 comments on commit 330b27c

Please sign in to comment.