예제 #1
0
 /** View booking history. */
 private void viewBookingHistory() {
   System.out.println(LINE_SPACING);
   ArrayList<Booking> bookingHistory = new ArrayList<Booking>();
   bookingHistory = bookingController.getBookingHistory();
   System.out.println("Your booking history: ");
   for (int i = 0; i < bookingHistory.size(); i++) {
     bookingHistory.get(i).print();
   }
 }
예제 #2
0
 /** Check seats and book ticket. */
 private void checkSeatsAndBookTicket() {
   Layout layout;
   System.out.println(LINE_SPACING);
   movieUser.printMovieList();
   boolean done = false;
   int bookingId = 0;
   while (!done) {
     System.out.print("Enter the id of the movie you want to see : ");
     try {
       bookingId = Integer.parseInt(sc.nextLine());
     } catch (NumberFormatException e) {
       System.out.println("Please enter a valid number!");
       continue;
     }
     done = true;
   }
   Movie m = movieUser.getMovieByID(bookingId);
   Date time = null;
   if (m != null) {
     bookingController.setMovie(m);
     ShowTimes showTimes = showTimesController.getShowTimes(bookingId);
     if (showTimes == null || showTimes.getTime().isEmpty()) {
       System.out.println(
           "There is no available showtimes for this movie. Please choose another movie");
       return;
     }
     System.out.println(LINE_SPACING);
     showTimesController.printShowTimesByMovie(bookingId);
     System.out.print("Choose the showtimes: ");
     int choice = 0;
     try {
       choice = Integer.parseInt(sc.nextLine());
     } catch (Exception e) {
       System.out.println("Please enter a valid number!");
       return;
     }
     while (true) {
       if (choice <= showTimes.getTime().size()) {
         time = showTimes.getTime().get(choice - 1);
         Cinema cinema = showTimes.getCinema().get(choice - 1);
         bookingController.setCinema(cinema);
         String transactionID = cinema.getCode();
         bookingController.setTransactionID(transactionID);
         layout = cinema.getLayOut();
         System.out.println(LINE_SPACING);
         layout.viewLayOut();
         break;
       } else {
         System.out.println("Please choose again: ");
         continue;
       }
     }
     System.out.print("Please enter number of seats you want to choose: ");
     int ticketNumber = 0;
     done = false;
     while (!done) {
       try {
         ticketNumber = Integer.parseInt(sc.nextLine());
       } catch (NumberFormatException e) {
         System.out.println("Please enter a valid number!");
         continue;
       }
       done = true;
     }
     bookingController.setTicketNumber(ticketNumber);
     for (int i = 0; i < ticketNumber; i++) {
       System.out.println("Please enter your choice of seat:");
       while (true) {
         int row;
         while (true) {
           System.out.print("Enter row: ");
           try {
             row = Integer.parseInt(sc.nextLine());
           } catch (NumberFormatException e) {
             System.out.println("Please enter a valid number!");
             continue;
           }
           if (row <= layout.getRow()) break;
           System.out.println("Enter row again.");
         }
         int column;
         while (true) {
           System.out.print("Enter column: ");
           try {
             column = Integer.parseInt(sc.nextLine());
           } catch (NumberFormatException e) {
             System.out.println("Please enter a valid number!");
             continue;
           }
           if (column <= layout.getCol()) break;
           System.out.println("Enter column again.");
         }
         boolean isChosen =
             bookingController.seatSelection(
                 showTimesController
                     .getShowTimes(bookingId)
                     .getCinema()
                     .get(choice - 1)
                     .getLayOut(),
                 row,
                 column);
         if (isChosen) {
           System.out.println("Choose sucessfully!");
           showTimesController.save();
           break;
         } else {
           System.out.println("Seat is not available! Please choose again");
           continue;
         }
       }
     }
   } else {
     System.out.println("Movie not found. Please try again!");
   }
   System.out.println(LINE_SPACING);
   int basePrice = ticketController.getBasePrice();
   bookingController.setBasePrice(basePrice);
   String name, mobileNumber, emailAddress;
   int age = 0;
   System.out.print("Enter your name: ");
   name = sc.nextLine();
   System.out.print("Enter your mobile number: ");
   mobileNumber = sc.nextLine();
   System.out.print("Enter your email address: ");
   emailAddress = sc.nextLine();
   done = false;
   while (!done) {
     System.out.print("Enter your age: ");
     try {
       age = Integer.parseInt(sc.nextLine());
     } catch (Exception e) {
       System.out.println("Please enter a valid number!");
       continue;
     }
     done = true;
   }
   bookingController.setMovieGoer(name, mobileNumber, emailAddress, age);
   bookingController.generateTransactionID();
   System.out.println("Ticket booked! Below is your receipt: ");
   bookingController.bookTicket(time);
   bookingController.saveBooking();
   movieUser.save();
   time = null; // prevent 2 users can book 1 seat.
 }