View Javadoc

1   package de.tivsource.page.admin.actions.locations.reservation;
2   
3   import java.util.ArrayList;
4   import java.util.Calendar;
5   import java.util.Date;
6   import java.util.List;
7   import java.util.UUID;
8   
9   import org.apache.logging.log4j.LogManager;
10  import org.apache.logging.log4j.Logger;
11  import org.apache.struts2.ServletActionContext;
12  import org.apache.struts2.convention.annotation.Action;
13  import org.apache.struts2.convention.annotation.Actions;
14  import org.apache.struts2.convention.annotation.Result;
15  
16  import de.tivsource.ejb3plugin.InjectEJB;
17  import de.tivsource.page.admin.actions.EmptyAction;
18  import de.tivsource.page.dao.event.EventDaoLocal;
19  import de.tivsource.page.dao.reservation.ReservationDaoLocal;
20  import de.tivsource.page.entity.reservation.Reservation;
21  import de.tivsource.page.enumeration.Origin;
22  
23  /**
24   * 
25   * @author Marc Michele
26   *
27   */
28  public class AddAction extends EmptyAction {
29  
30  	/**
31  	 * Serial Version UID.
32  	 */
33      private static final long serialVersionUID = 7464881886808879895L;
34  
35      /**
36       * Statischer Logger der Klasse.
37       */
38      private static final Logger LOGGER = LogManager.getLogger(AddAction.class);
39  
40      @InjectEJB(name="EventDao")
41      private EventDaoLocal eventDaoLocal;
42  
43      @InjectEJB(name="ReservationDao")
44      private ReservationDaoLocal reservationDaoLocal;
45  
46      private String redirect;
47      
48      private Reservation reservation;
49  
50      public Reservation getReservation() {
51          return reservation;
52      }
53  
54      public void setReservation(Reservation reservation) {
55          this.reservation = reservation;
56      }
57  
58      public String getRedirect() {
59          return redirect;
60      }
61  
62      @Override
63      @Actions({
64          @Action(
65          		value = "add", 
66          		results = { 
67          				@Result(name = "success", type = "redirectAction", location = "${redirect}"),
68          				@Result(name = "input", type="tiles", location = "reservationAddForm"),
69          				@Result(name = "error", type="tiles", location = "reservationAddError")
70          				}
71          )
72      })
73      public String execute() throws Exception {
74      	LOGGER.info("execute() aufgerufen.");
75  
76          String remoteUser    = ServletActionContext.getRequest().getRemoteUser();
77          String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
78  
79      	if(reservation != null) {
80      	    redirect = "index.html?event=" + reservation.getEvent().getUuid();
81      	    reservation.setUuid(UUID.randomUUID().toString());
82      	    reservation.setCreated(new Date());
83      	    reservation.setCreatedAddress(remoteAddress);
84      	    reservation.setConfirmed(false);
85              reservation.setModified(new Date());
86              reservation.setModifiedAddress(remoteAddress);
87              reservation.setModifiedBy(remoteUser);
88              reservation.setOrigin(Origin.TELEPHONE);
89              reservationDaoLocal.merge(reservation);
90  
91      	    reservationDaoLocal.merge(reservation);
92              return SUCCESS;
93      	}
94      	else {
95      		return ERROR;
96      	}
97      	
98      	
99      }// Ende execute()
100 
101     public List<Date> getTimes() {
102         LOGGER.info("getTimes() aufgerufen.");
103 
104         List<Date> times = new ArrayList<Date>();
105 
106         // Anfangs Punkt der Zeitreihe
107         Calendar calendarStart = Calendar.getInstance();
108         calendarStart.setTime(reservation.getEvent().getBeginning());
109         times.add(calendarStart.getTime());
110                 
111         // Endpunkt der Zeitreihe 
112         Calendar calendar = Calendar.getInstance();
113         calendar.setTime(reservation.getEvent().getEnding());
114         calendar.add(Calendar.MINUTE, -30);
115         Date end = calendar.getTime();
116 
117         // Datum mit dem gerechnet wird
118         Date time = reservation.getEvent().getBeginning();
119         while (time.before(end)) {
120             Calendar calendarTime = Calendar.getInstance();
121             calendarTime.setTime(time);
122             calendarTime.add(Calendar.MINUTE, 15);
123             time = calendarTime.getTime();
124             times.add(time);
125         }
126 
127         LOGGER.info("Inhalt der Liste: " + times.size());
128 
129         return times;
130     }
131 
132 }// Ende class