Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions src/main/java/org/jlab/dtm/business/session/EventFacade.java
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,28 @@ public void editEvent(BigInteger eventId, Date timeUp, String title, BigInteger
throw new InternalException("EventType with ID " + eventTypeId + " not found");
}

List<Event> eventList =
this.findEventListWithIncidents(
event.getTimeDown(), timeUp == null ? new Date() : timeUp, type.getEventTypeId());

List<Event> differentEventList = new ArrayList<>();

for (Event e : eventList) {
if (!e.getEventId().equals(event.getEventId())) {
differentEventList.add(e);
}
}

if (!differentEventList.isEmpty()) {
throw new UserFriendlyException(
"Event modification results in event of type "
+ type.getAbbreviation()
+ " time period collision with existing event "
+ eventList.get(0).getEventId()
+ " named: "
+ eventList.get(0).getTitle());
}

event.setTitle(title);
event.setEventType(type);

Expand Down
65 changes: 64 additions & 1 deletion src/main/java/org/jlab/dtm/business/session/IncidentFacade.java
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,8 @@ public Event addEvent(
throw new UserFriendlyException(
"An event of type "
+ type.getName()
+ " is already open (cannot add another open event of same type)");
+ " is already open (cannot add another open event of same type). The existing event name: "
+ event.getTitle());
}

/* we must ensure that an incident has a timeUp if the event is closed*/
Expand All @@ -420,6 +421,20 @@ public Event addEvent(
throw new UserFriendlyException("Incident time up can not come after event time up");
}

List<Event> eventList =
eventFacade.findEventListWithIncidents(
timeDown, eventTimeUp == null ? new Date() : eventTimeUp, type.getEventTypeId());

if (!eventList.isEmpty()) {
throw new UserFriendlyException(
"Event addition results in type "
+ type.getAbbreviation()
+ " time period collision with existing event "
+ eventList.get(0).getEventId()
+ " named: "
+ eventList.get(0).getTitle());
}

// Enforce restrictions on closed events. Operators must work with open events if they wish to
// mettle in the past
AuditContext auditCtx = AuditContext.getCurrentInstance();
Expand Down Expand Up @@ -538,6 +553,30 @@ public void editIncident(

boolean wasPreviouslyClosed = incident.getTimeUp() != null;

List<Event> eventList =
eventFacade.findEventListWithIncidents(
timeDown.before(event.getTimeDown()) ? timeDown : event.getTimeDown(),
event.getTimeUp() == null ? new Date() : event.getTimeUp(),
event.getEventType().getEventTypeId());

List<Event> differentEventList = new ArrayList<>();

for (Event e : eventList) {
if (!e.getEventId().equals(event.getEventId())) {
differentEventList.add(e);
}
}

if (!differentEventList.isEmpty()) {
throw new UserFriendlyException(
"Incident modification results in event type "
+ event.getEventType().getAbbreviation()
+ " time period collision with existing event "
+ eventList.get(0).getEventId()
+ " named: "
+ eventList.get(0).getTitle());
}

validateAndPopulateIncident(
incident,
title,
Expand Down Expand Up @@ -640,6 +679,30 @@ public void addIncident(

event.setTitle(eventTitle);

List<Event> eventList =
eventFacade.findEventListWithIncidents(
timeDown.before(event.getTimeDown()) ? timeDown : event.getTimeDown(),
event.getTimeUp() == null ? new Date() : event.getTimeUp(),
event.getEventType().getEventTypeId());

List<Event> differentEventList = new ArrayList<>();

for (Event e : eventList) {
if (!e.getEventId().equals(event.getEventId())) {
differentEventList.add(e);
}
}

if (!differentEventList.isEmpty()) {
throw new UserFriendlyException(
"Incident modification results in event type "
+ event.getEventType().getAbbreviation()
+ " time period collision with existing event "
+ eventList.get(0).getEventId()
+ " named: "
+ eventList.get(0).getTitle());
}

em.flush();

Incident incident = new Incident();
Expand Down