Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 30th, 2012  |  syntax: None  |  size: 8.21 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. package controleur;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Enumeration;
  5.  
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import javax.servlet.http.HttpSession;
  10.  
  11.  
  12. import modele.BeanBillet;
  13. import modele.BeanRepresentation;
  14. import modele.BeanSpectacle;
  15. import modele.DelegateRepresentation;
  16. import modele.DelegateSpectacle;
  17. import modele.MessageException;
  18.  
  19. /**
  20.  * Servlet implementation class GestionReservation
  21.  */
  22. public class GestionReservation extends HttpServlet {
  23.  
  24.         /**
  25.    *
  26.    */
  27.         private static final long serialVersionUID = -8550107410007143340L;
  28.         private static final String PATH_IMAGE= "images/";
  29.        
  30.         public void executerTraitementReservation(HttpServletRequest request,
  31.                         HttpServletResponse response) {
  32.        
  33.  
  34.                 BeanRepresentation uneRepresentation = null;
  35.                
  36.                 //On cherche les info de la représentation
  37.                 try {
  38.                         uneRepresentation = DelegateRepresentation
  39.                                         .obtenirInfoRepresentation(Integer.parseInt(request
  40.                                                         .getParameter("idSpectacle")), Integer
  41.                                                         .parseInt(request.getParameter("idRepresentation")));
  42.                 } catch (NumberFormatException e2) {
  43.                         // TODO Auto-generated catch block
  44.                         e2.printStackTrace();
  45.                 } catch (MessageException e2) {
  46.                         // TODO Auto-generated catch block
  47.                         e2.printStackTrace();
  48.                 }
  49.                
  50.                 //Construction de l'objet billet qui sera envoyé à la session
  51.                 BeanBillet unBillet = new BeanBillet(uneRepresentation
  52.                                 .getIdRepresentation(), Integer.parseInt(request
  53.                                 .getParameter("nbBillets")), uneRepresentation.getPrix(),
  54.                                 uneRepresentation.getIdRepresentation(), uneRepresentation
  55.                                                 .getIdSpectacle(), Integer.parseInt(request
  56.                                                 .getParameter("nbBillets"))
  57.                                                 * uneRepresentation.getPrix());
  58.  
  59.                 // Démarer une session de réservation de billets.
  60.                 HttpSession session = request.getSession();
  61.  
  62.                 //Objet d'incrémentation qui servira à créer un nouvel objet billet à chaque réservation
  63.                 Object increment = session.getAttribute("increment");
  64.                 if (increment == null) {
  65.                         session.setAttribute("increment", new Integer(0));
  66.                 } else {
  67.                         int value = ((Integer) increment).intValue();
  68.                         session.setAttribute("increment", ++value);
  69.                 }
  70.  
  71.                 //Condition qui sert à savoir si la session a déjà été créée
  72.                 if (session.getAttribute("IP") == null) {
  73.  
  74.                         session.setMaxInactiveInterval(10 * 60);// 10 minutes
  75.  
  76.                         // Ajout d'attributs
  77.                         if (request.getRemoteAddr().equals("0:0:0:0:0:0:0:1")) {
  78.                                 session.setAttribute("IP", "Localhost");
  79.                         } else {
  80.                                 session.setAttribute("IP", request.getRemoteAddr());
  81.                         }
  82.                         //Peut être enlevé, ne sert à rien pour le moment
  83. //                      session.setAttribute("ObjRepresentation"
  84. //                                      + session.getAttribute("increment"), uneRepresentation);
  85.                        
  86.                         session.setAttribute("Billet" + session.getAttribute("increment"),
  87.                                         unBillet);
  88.                 } else {
  89.                         // Ajout d'attributs
  90. //                      session.setAttribute("ObjRepresentation"
  91. //                                      + session.getAttribute("increment"), uneRepresentation);
  92.  
  93.                         session.setAttribute("Billet" + session.getAttribute("increment"),
  94.                                         unBillet);
  95.                 }
  96.                
  97.                 //Enlevé les billets réservés des billets disponibles.
  98.                 ChangerNombreBilletsMoins(unBillet);
  99.         }
  100.  
  101.         //Méthode qui enlève les billets de la BD
  102.         public void ChangerNombreBilletsMoins(BeanBillet unBillet) {
  103.                 ArrayList<BeanRepresentation> listeRepresentations;
  104.                 ArrayList<BeanSpectacle> listeSpectacle;
  105.  
  106.                 try {
  107.                         listeRepresentations = DelegateRepresentation
  108.                                         .obtenirRepresentations(PATH_IMAGE);
  109.                         listeSpectacle = DelegateSpectacle.obtenirSpectacles(PATH_IMAGE);
  110.                         //changer la liste
  111.                         for (int i = 0; i < listeRepresentations.size(); i++) {
  112.                                 if(listeRepresentations.get(i).getIdSpectacle() == unBillet.getIdSpectacle() && listeRepresentations.get(i).getIdRepresentation() == unBillet.getIdRepresentation()){
  113.                                         listeRepresentations.get(i).setNbBilletDispo(listeRepresentations.get(i).getNbBilletDispo() - unBillet.getNombre());
  114.                         }}
  115.                         //réécrire la liste
  116.                         DelegateRepresentation.ecrireNbBilletsDispo(listeSpectacle, listeRepresentations);
  117.                        
  118.  
  119.                 } catch (MessageException e) {
  120.                         // TODO Auto-generated catch block
  121.                         e.printStackTrace();
  122.                 }
  123.  
  124.         }
  125.  
  126.         //Méthode qui ajoute les billets à la BD
  127.         public void ChangerNombreBilletsPlus(BeanBillet unBillet) {
  128.                 ArrayList<BeanRepresentation> listeRepresentations;
  129.                 ArrayList<BeanSpectacle> listeSpectacle;
  130.  
  131.                 try {
  132.                         listeRepresentations = DelegateRepresentation
  133.                                         .obtenirRepresentations(PATH_IMAGE);
  134.                         listeSpectacle = DelegateSpectacle.obtenirSpectacles(PATH_IMAGE);
  135.                         for (int i = 0; i < listeRepresentations.size(); i++) {
  136.                                 //Si nous sommes rendu à la même représentation du même spectacle
  137.                                 if (listeRepresentations.get(i).getIdSpectacle() == unBillet
  138.                                                 .getIdSpectacle()
  139.                                                 && listeRepresentations.get(i).getIdRepresentation() == unBillet
  140.                                                                 .getIdRepresentation()) {
  141.                                         //On ajoute les billets qui étaient réservés à la BD ( ou dans le XML dans notre cas)
  142.                                         listeRepresentations.get(i).setNbBilletDispo(
  143.                                                         listeRepresentations.get(i).getNbBilletDispo()
  144.                                                                         + unBillet.getNombre());
  145.                                 }
  146.                         }
  147.                         //On réécris dans la BD la donnée ( ou dans le XML dans notre cas)
  148.                         DelegateRepresentation.ecrireNbBilletsDispo(listeSpectacle,
  149.                                         listeRepresentations);
  150.  
  151.                 } catch (MessageException e) {
  152.                         // TODO Auto-generated catch block
  153.                         e.printStackTrace();
  154.                 }
  155.  
  156.         }
  157.  
  158.        
  159.         //Ne sert plus à rien, nous la gardons au cas.
  160.         public ArrayList<BeanRepresentation> lectureReservation(
  161.                         HttpServletRequest request, HttpServletResponse response) {
  162.                 ArrayList<BeanRepresentation> lesRepresentations = new ArrayList<BeanRepresentation>();
  163.  
  164.                 // Prendre la session en attribut
  165.                 HttpSession session = request.getSession();
  166.  
  167.                 if (session.getAttribute("IP") == null) {
  168.                         System.out.println("Il n'y a rien dans le panier d'achat");
  169.                         return null;
  170.                 }
  171.  
  172.                 if (session.getAttribute("IP") != null) {
  173.  
  174.                         // On parcourt maintenant le contenu de notre objet session
  175.                         Enumeration<?> e = session.getAttributeNames();
  176.                         while (e.hasMoreElements()) {
  177.                                 String key = (String) e.nextElement();
  178.                                 if (key.contains("ObjRepresentation")) {
  179.                                         lesRepresentations.add((BeanRepresentation) session
  180.                                                         .getAttribute(key));
  181.                                 }
  182.                         }
  183.  
  184.                 }
  185.                 return lesRepresentations;
  186.         }
  187.  
  188.         public ArrayList<BeanBillet> lectureBillets(HttpServletRequest request,
  189.                         HttpServletResponse response) {
  190.                 ArrayList<BeanBillet> lesBillets = new ArrayList<BeanBillet>();
  191.  
  192.                 // Démarer une session de réservation de billets.
  193.                 HttpSession session = request.getSession();
  194.  
  195.                 if (session.getAttribute("IP") == null) {
  196.                         System.out.println("Il n'y a rien dans le panier d'achat");
  197.                         return null;
  198.                 }
  199.  
  200.                 if (session.getAttribute("IP") != null) {
  201.  
  202.                         // On parcourt maintenant le contenu de notre objet session
  203.                         Enumeration<?> e = session.getAttributeNames();
  204.                         while (e.hasMoreElements()) {
  205.                                 String key = (String) e.nextElement();
  206.                                 if (key.contains("Billet")) {
  207.                                         lesBillets.add((BeanBillet) session.getAttribute(key));
  208.                                 }
  209.                         }
  210.  
  211.                 }
  212.                 return lesBillets;
  213.         }
  214.  
  215.         //Fonction qui sert à savoir combien de représentations sont choisis dans la session
  216.         public String nbBilletReserve(HttpServletRequest request,
  217.                         HttpServletResponse response) {
  218.                 String nbBillets;
  219.                
  220.                 if(lectureBillets(request, response)!=null){
  221.                         nbBillets = Integer.toString(lectureBillets(request, response)
  222.                                 .size());
  223.                         return "[" + nbBillets + "]";
  224.  
  225.                 }
  226.                 else
  227.                         return "";
  228.                
  229.         }
  230.        
  231.         //Fonction qui sert à enlever une réservation au choix
  232.         public void supprReservation(HttpServletRequest request, int idBillet) {
  233.                
  234.                 // Prendre la session en attribut
  235.                 HttpSession session = request.getSession();
  236.                 BeanBillet unBillet;
  237.                
  238.                 if (session.getAttribute("IP") != null) {
  239.  
  240.                         // On parcourt maintenant le contenu de notre objet session
  241.                         Enumeration<?> e = session.getAttributeNames();
  242.                         while (e.hasMoreElements()) {
  243.                                 String key = (String) e.nextElement();
  244.                                 if (key.contains("Billet")) {
  245.                                                 unBillet = (BeanBillet) session.getAttribute(key);
  246.                                                 if(unBillet.getIdBillet() == idBillet){
  247.                                                         session.removeAttribute(key);
  248.                                                         ChangerNombreBilletsPlus(unBillet);
  249.                                                 }
  250.                                 }
  251.                         }
  252.  
  253.                 }
  254.         }
  255.        
  256.        
  257. }