Ejemplo n.º 1
0
  public static void addMovieReview(User user, Movie movie) {
    Scanner sc = new Scanner(System.in);
    int i = 0;
    double newRating = 0;

    MovieSerializer movieSerializer = new MovieSerializer();
    UserSerializer userSerializer = new UserSerializer();
    MovieReview reviewForThisMovie = new MovieReview();

    if (user.getMovieReviewedByUser() != null) {
      while (i < user.getMovieReviewedByUser().size()) {
        if (user.getMovieReviewedByUser().get(i).getMovieName().equals(movie.getMovieTitle())) {
          System.out.println("You have rated this movie.");
          user.getMovieReviewedByUser().get(i).print();
          System.out.println("Do you want to modify the review? (Y/N)");
          if (UserApp.YN()) {
            modifyReview(user, i);
            return;
          } else return;
        } else i++;
      }
    }
    reviewForThisMovie.setMovieName(movie.getMovieTitle());
    reviewForThisMovie.setReviewer(user.getUserName());
    while ((newRating > 5) || (newRating < 1)) {
      System.out.print("Rating(1 - 5 [best]): ");
      newRating = sc.nextInt();
      if ((newRating > 5) || (newRating < 1))
        System.out.println("You can only give a rating between 1 to 5!");
    }
    reviewForThisMovie.setRating(newRating);
    System.out.print("Review: ");
    sc.nextLine();
    reviewForThisMovie.setReview(sc.nextLine());
    movie.addReviewForThisMovie(reviewForThisMovie);
    user.getMovieReviewedByUser().add(reviewForThisMovie);
    movieSerializer.serializeMovie(movie);
    userSerializer.serializeUser(user);
    return;
  }
Ejemplo n.º 2
0
  public static void modifyReview(User user, int index) {
    Scanner sc = new Scanner(System.in);
    UserSerializer userSerializer = new UserSerializer();
    MovieSerializer movieSerializer = new MovieSerializer();
    int choice = -1, i = user.getMovieReviewedByUser().size() - 1 - index, newRating = 0;
    Movie movie =
        movieSerializer.deSerializeMovie(user.getMovieReviewedByUser().get(i).getMovieName());
    String newReview;
    int movieReviewIndex;

    for (movieReviewIndex = 0;
        movieReviewIndex < movie.getReviewForThisMovie().size();
        movieReviewIndex++)
      if (movie
          .getReviewForThisMovie()
          .get(movieReviewIndex)
          .getReviewer()
          .equals(user.getUserName())) break;
    System.out.println("\n===== Modify Rating =====\n");
    System.out.println("Review " + index);
    user.getMovieReviewedByUser().get(i).print();
    while (choice != 0) {
      System.out.println("\n1: Edit review");
      System.out.println("2: Edit rating");
      System.out.println("3: Remove Rating");
      System.out.println("0: Back to previous page");
      System.out.println("What do you want to do?");
      choice = sc.nextInt();
      switch (choice) {
        case 1:
          System.out.print("Review: ");
          newReview = sc.next();
          user.getMovieReviewedByUser().get(i).setReview(newReview);
          ;
          movie.getReviewForThisMovie().get(movieReviewIndex).setReview(newReview);
          System.out.println("The review is changed successfully.");
          break;
        case 2:
          while ((newRating > 5) || (newRating < 1)) {
            System.out.print("Rating(1 - 5 [best]): ");
            newRating = sc.nextInt();
            if ((newRating > 5) || (newRating < 1))
              System.out.println("You can only give a rating between 1 to 5!");
          }
          user.getMovieReviewedByUser().get(i).setRating(newRating);
          movie.getReviewForThisMovie().get(movieReviewIndex).setRating(newRating);
          System.out.println("The rating is changed successfully.");
          break;
        case 3:
          System.out.println("Are you sure you want to remove this rating? (Y/N)");
          if (UserApp.YN()) {
            movie.getReviewForThisMovie().remove(user.getMovieReviewedByUser().get(i));
            user.getMovieReviewedByUser().remove(i);
            break;
          } else break;
        case 0:
          break;
        default:
          System.out.println("Please input a valid option!");
          break;
      }
    }
    userSerializer.serializeUser(user);
    movieSerializer.serializeMovie(movie);
  }