/* * REMOVE MOVIE * Searches BST for entered Movie * Deletes if found * Alerts user if not */ static void RemoveMovie(MovieCollection movieC, MemberCollection memberC) { string mTitle; WriteLine("\nEnter the Title of the Movie you wish to remove: "); mTitle = Console.ReadLine(); Movie outcome = movieC.Find(mTitle); if (outcome == null) { WriteLine("\n" + mTitle + " could not be found in the database, please check the details\n"); DisplayStaffMenu(movieC, memberC); } else { movieC.Remove(outcome); WriteLine("\n" + mTitle + " has been removed from the database\n"); DisplayStaffMenu(movieC, memberC); } }
/* * BORROW MOVIE * Enables the user to borrow a copy of a Movie from the Program * Alerts the user if their input does not match the title of a Movie in the Program * Alerts the user if they are already borrowing the Movie they have inputted * Alerts the user if there are no more copies of the Movie in the Program * Alerts the user if they are borrowing the maximum number of Movies at one time */ static void MemberBorrowMovie(MovieCollection movieC, MemberCollection memberC, Member member) { string movieTitle; WriteLine("\nPlease enter the movie you wish to borrow: "); movieTitle = Console.ReadLine(); Movie borrowedMovie = movieC.Find(movieTitle); if (borrowedMovie == null) { WriteLine("\n" + movieTitle + " could not be found in the database, please check the details"); DisplayMemberMenu(movieC, memberC, member); } //Checks to see if the movie is already borrowed bool alreadyBorrowed = false; for (int i = 0; i < member.moviesBorrowed.Length; i++) { if (member.moviesBorrowed[i] == null) { alreadyBorrowed = false; } else if (member.moviesBorrowed[i].title == borrowedMovie.title) { alreadyBorrowed = true; break; } else { alreadyBorrowed = false; } } //Determines next course based on if the movie is already borrowed or not if (alreadyBorrowed == false) { if (borrowedMovie.copiesAvailable < 1) { WriteLine("\nThere are no more copies of " + movieTitle + " remaining\n"); DisplayMemberMenu(movieC, memberC, member); } else { int currentlyBorrowedMovies = 0; //Counts number of Movies the user is already borrowing for (int i = 0; i < member.moviesBorrowed.Length; i++) { if (member.moviesBorrowed[i] != null) { currentlyBorrowedMovies++; } } //Kicks user if they have reached the maximum number of Borrowed Movies if (currentlyBorrowedMovies == 10) { WriteLine("\nYou are already borrowing the maximum amount of Movies possible\n"); DisplayMemberMenu(movieC, memberC, member); } else { //Finds empty position in Movies Borrowed array //And adds the Movie to it for (int i = 0; i < member.moviesBorrowed.Length; i++) { if (member.moviesBorrowed[i] == null) { member.moviesBorrowed[i] = borrowedMovie; break; } } //Decreases number of available copies borrowedMovie.copiesAvailable -= 1; //Increases number of times borrowed borrowedMovie.timesBorrowed += 1; //Calculates how many movies the user can borrow int nullMovies = 0; for (int i = 0; i < member.moviesBorrowed.Length; i++) { if (member.moviesBorrowed[i] == null) { nullMovies++; } } WriteLine("\nYou have now borrowed " + movieTitle); WriteLine("You have borrowed " + (member.moviesBorrowed.Length - nullMovies) + " of your total 10 Movies you can borrow at one time\n"); DisplayMemberMenu(movieC, memberC, member); } } } else { WriteLine("\nYou are already borrowing: " + movieTitle + "\n"); DisplayMemberMenu(movieC, memberC, member); } }
/* * ENTER MOVIE * - Enables the user to add a new Movie to the program * - Filters for incorrect input * - Allows user to add more copies if Movie Title is already in Program */ static void EnterNewMovie(MovieCollection movieC, MemberCollection memberC) { string movieTitle; string movieActors; string movieDirector; Genre movieGenre; Classification movieClassification; int movieDuration = 0; int movieReleaseYear = 0; int movieAvailableCopies = 0; string genreInput; string classInput; string durationInput; string rYearInput; string aCopiesInput; WriteLine(); //Movie Title do { do { WriteLine("Enter the Title of the Movie: "); movieTitle = Console.ReadLine(); //Checks if input is valid if (!Regex.IsMatch(movieTitle, @"^[a-zA-Z0-9\x20]+$")) { WriteLine("\nIncorrect Input, please enter a combination of letters and numbers\n"); } if (Regex.IsMatch(movieTitle, @"^[\x20]+$")) { WriteLine("\nInput cannot be blank\n"); } Movie foundMovie = movieC.Find(movieTitle); //Checks whether movie already exists in database if (foundMovie != null) { string copiesAdded; do { WriteLine("\nPlease enter the number of copies you wish to add: "); copiesAdded = Console.ReadLine(); if (!Regex.IsMatch(copiesAdded, @"^[0-9]+$")) { WriteLine("\nIncorrect input, please enter an integer"); } else { int copiesToAdd = Convert.ToInt32(copiesAdded); foundMovie.copiesAvailable += copiesToAdd; WriteLine("\nAdded " + copiesToAdd + " copies to " + foundMovie.title + "\n"); WriteLine(foundMovie.title + " now has " + foundMovie.copiesAvailable + " copies available"); DisplayStaffMenu(movieC, memberC); break; } } while (!Regex.IsMatch(copiesAdded, @"^[0-9]+$")); } } while (!Regex.IsMatch(movieTitle, @"^[a-zA-Z0-9\x20]+$")); } while (Regex.IsMatch(movieTitle, @"^[\x20]+$")); //Actors/Actresses do { do { do { WriteLine("Enter the Actors/Actresses in the Movie: "); movieActors = Console.ReadLine(); if (!Regex.IsMatch(movieActors, @"^[a-zA-Z,\x20]+$")) { WriteLine("\nIncorrect Input, please enter a string\n"); } if (Regex.IsMatch(movieActors, @"^[\x20]+$")) { WriteLine("\nInput cannot be blank\n"); } if (Regex.IsMatch(movieActors, @"^[\,]+$")) { WriteLine("\nIncorrect Input, please enter a string\n"); } } while (!Regex.IsMatch(movieActors, @"^[a-zA-Z,\x20]+$")); } while (Regex.IsMatch(movieActors, @"^[\x20]+$")); }while (Regex.IsMatch(movieActors, @"^[,]+$")); //Movie Director do { do { WriteLine("Enter the Director of the Movie: "); movieDirector = Console.ReadLine(); if (!Regex.IsMatch(movieDirector, @"^[a-zA-Z\x20]+$")) { WriteLine("\nIncorrect Input, please enter a string\n"); } if (Regex.IsMatch(movieDirector, @"^[\x20]+$")) { WriteLine("\nInput cannot be blank\n"); } } while (!Regex.IsMatch(movieDirector, @"^[a-zA-Z\x20]+$")); } while (Regex.IsMatch(movieDirector, @"^[\x20]+$")); //Genre Selection do { WriteLine("\nThe available Genres are:"); WriteLine("1. Drama"); WriteLine("2. Adventure"); WriteLine("3. Family"); WriteLine("4. Action"); WriteLine("5. Sci-Fi"); WriteLine("6. Comedy"); WriteLine("7. Thriller"); WriteLine("8. Other"); WriteLine("Please select the Genre of the Movie: "); genreInput = Console.ReadLine().ToString(); if (genreInput == '1'.ToString()) { movieGenre = Genre.Drama; } else if (genreInput == '2'.ToString()) { movieGenre = Genre.Adventure; } else if (genreInput == '3'.ToString()) { movieGenre = Genre.Family; } else if (genreInput == '4'.ToString()) { movieGenre = Genre.Action; } else if (genreInput == '5'.ToString()) { movieGenre = Genre.SciFi; } else if (genreInput == '6'.ToString()) { movieGenre = Genre.Comedy; } else if (genreInput == '7'.ToString()) { movieGenre = Genre.Thriller; } else { movieGenre = Genre.Other; } if (genreInput != '1'.ToString() && genreInput != '2'.ToString() && genreInput != '3'.ToString() && genreInput != '4'.ToString() && genreInput != '5'.ToString() && genreInput != '6'.ToString() && genreInput != '7'.ToString() && genreInput != '8'.ToString() ) { WriteLine("\nIncorrect Input, please enter either 1,2,3,4,5,6,7 or 8\n"); } } while (genreInput != '1'.ToString() && genreInput != '2'.ToString() && genreInput != '3'.ToString() && genreInput != '4'.ToString() && genreInput != '5'.ToString() && genreInput != '6'.ToString() && genreInput != '7'.ToString() && genreInput != '8'.ToString()); //Classification Selection do { WriteLine("\nThe available Classifications are:"); WriteLine("1. General (G)"); WriteLine("2. Parental Guidance (PG)"); WriteLine("3. Mature (M)"); WriteLine("4. Mature Accompanied (MA15+)"); WriteLine("Please select the Classification of the Movie: "); classInput = Console.ReadLine().ToString(); if (classInput == '1'.ToString()) { movieClassification = Classification.General; } else if (classInput == '2'.ToString()) { movieClassification = Classification.ParentalGuidance; } else if (classInput == '3'.ToString()) { movieClassification = Classification.Mature; } else { movieClassification = Classification.MatureAccompanied; } if (classInput != '1'.ToString() && classInput != '2'.ToString() && classInput != '3'.ToString() && classInput != '4'.ToString()) { WriteLine("\nIncorrect Input, please enter either 1,2,3 or 4\n"); } } while (classInput != '1'.ToString() && classInput != '2'.ToString() && classInput != '3'.ToString() && classInput != '4'.ToString()); //Duration in Minutes do { WriteLine("\nEnter the Movie's Duration in Minutes: "); durationInput = Console.ReadLine(); if (!Regex.IsMatch(durationInput, @"^[0-9]+$")) { WriteLine("\nIncorrect Input, please enter an integer\n"); } else { movieDuration = Convert.ToInt32(durationInput); } } while (!Regex.IsMatch(durationInput, @"^[0-9]+$")); //Year of Release do { WriteLine("\nEnter the Movie's Year of Release: "); rYearInput = Console.ReadLine(); if (!Regex.IsMatch(rYearInput, @"^[0-9]+$")) { WriteLine("\nIncorrect Input, please enter an integer\n"); } else { movieReleaseYear = Convert.ToInt32(rYearInput); } } while (!Regex.IsMatch(rYearInput, @"^[0-9]+$")); //Number of Available Copies do { WriteLine("\nEnter the Number of Available Copies: "); aCopiesInput = Console.ReadLine(); if (!Regex.IsMatch(aCopiesInput, @"^[0-9]+$")) { WriteLine("\nIncorrect Input, please enter an integer\n"); } else { movieAvailableCopies = Convert.ToInt32(aCopiesInput); } } while (!Regex.IsMatch(aCopiesInput, @"^[0-9]+$")); //Adds new movie to the Movie Collection and returns the user to the Staff Menu Movie newMovie = new Movie(movieTitle, movieActors, movieDirector, movieGenre, movieClassification, movieDuration, movieReleaseYear, movieAvailableCopies); movieC.Insert(newMovie); WriteLine("Successfully added " + newMovie.title + "\n"); //Returns user to the Staff Menu DisplayStaffMenu(movieC, memberC); }