// Function that controls user input when prompting user to enter new // movie details. public static void Insert(MovieCollection.MovieTree BST) { Console.WriteLine(); Console.WriteLine(); Console.WriteLine("----ENTER MOVIE DETAILS----"); Console.WriteLine(); // Create flag used to check user input. bool correct = false; // Prompt user to enter movie title Console.Write("Enter movie title: "); string movieTitle = Console.ReadLine();; // Enter movie title. while (!correct) { correct = CheckInput(movieTitle, 0); if (!correct) { Console.Write("Enter movie title: "); movieTitle = Console.ReadLine(); } } // Check to see if the movie exists // in the BST before creating a new copy. Movie movieExists = BST.ReturnMovie(BST.ReturnRoot(), movieTitle); // If the movie exists, prompt user to enter an amount to add to database. if (movieExists != null) { Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Movie already" + " exists in database: How many" + " copies do you want to add?"); correct = false; int n = 0; correct = int.TryParse(Console.ReadLine(), out int movieAmount); // Check user input while (!correct || movieAmount <= 0 || movieAmount >= 1000) { if (!correct || movieAmount <= 0 || movieAmount >= 1000) { Console.Write("Please enter a number for copies " + "between 1 and 1000: "); } correct = int.TryParse(Console.ReadLine(), out movieAmount); } n = movieAmount; Console.WriteLine(); Console.WriteLine(); // Increase copies available by number movieExists.IncreaseCopiesAvail(n); Console.WriteLine(movieExists.GetTitle() + " copies increased by " + n); } // If movie doesnt exist prompt user for input about movie. else { // Check user input for actors Console.WriteLine(); correct = false; Console.Write("Enter starring actors: "); string starring = Console.ReadLine(); while (!correct) { correct = CheckInput(starring, 1); if (!correct) { Console.Write("Enter starring actors: "); starring = Console.ReadLine(); } } // Check user input for directors Console.WriteLine(); correct = false; Console.Write("Enter movie director: "); string director = Console.ReadLine(); while (!correct) { correct = CheckInput(director, 1); if (!correct) { Console.Write("Enter movie director: "); director = Console.ReadLine(); } } // Check user input for genre Console.WriteLine(); correct = false; string genre = "empty"; Console.WriteLine("Choose Genre: \n" + "1. Drama\n" + "2. Family\n" + "3. Action\n" + "4. SciFi\n" + "5. Comedy\n" + "6. Animated\n" + "7. Thriller\n" + "8. Other\n" + "Enter Number between 1-8: "); correct = int.TryParse(Console.ReadLine(), out int num); while (!correct || num <= 0 || num >= 9) { Console.WriteLine("Please enter a number between 1 and 8."); correct = int.TryParse(Console.ReadLine(), out num); } // Set genre based off switch case switch (num) { case 1: genre = "Drama"; break; case 2: genre = "Family"; break; case 3: genre = "Action"; break; case 4: genre = "SciFi"; break; case 5: genre = "Comedy"; break; case 6: genre = "Animated"; break; case 7: genre = "Thriller"; break; case 8: genre = "Other"; break; default: break; } // Check user input for classification Console.WriteLine(); correct = false; string classification = "empty"; Console.Write("Enter classification: \n" + "1. G\n" + "2. PG\n" + "3. M 15+\n" + "4. MA 15+\n" + "5. R 18+\n" + "Enter Number between 1-5: "); correct = int.TryParse(Console.ReadLine(), out num); while (!correct || num <= 0 || num >= 6) { Console.WriteLine("Please enter a number between 1 and 5."); correct = int.TryParse(Console.ReadLine(), out num); } // Set classification based off switch case switch (num) { case 1: classification = "G"; break; case 2: classification = "PG"; break; case 3: classification = "M 15+"; break; case 4: classification = "MA 15+"; break; case 5: classification = "R 18+"; break; default: break; } // Check user input for duration Console.WriteLine(); correct = false; int duration = 0; Console.Write("Enter duration: "); correct = int.TryParse(Console.ReadLine(), out num); while (!correct || num <= 0 || num >= 600) { Console.WriteLine("Please enter a number for duration " + "- 1.30 hr = 90 min for example."); Console.WriteLine(); Console.Write("Enter duration: "); correct = int.TryParse(Console.ReadLine(), out num); } duration = num; // Check user input for date Console.WriteLine(); DateTime releaseDate = DateTime.Now; correct = false; while (!correct) { try { Console.Write("Enter release date (dd/mm/yyyy): "); releaseDate = DateTime.Parse(Console.ReadLine()); correct = true; } catch (FormatException) { Console.WriteLine("Wrong date and time format - please enter dd/mm/yyyy"); Console.WriteLine(); } } // Check user input for amount of copies Console.WriteLine(); correct = false; int copiesAvail = 1; Console.Write("Enter amount of copies: "); correct = int.TryParse(Console.ReadLine(), out num); while (!correct || num <= 0 || num >= 1000) { Console.WriteLine("Please enter a number for copies " + "between 1 and 1000."); Console.WriteLine(); Console.Write("Enter amount of copies: "); correct = int.TryParse(Console.ReadLine(), out num); } copiesAvail = num; //Create new movie and it to BST tree. Console.WriteLine(); Movie movie = new Movie(movieTitle, starring , director, duration, genre, classification, releaseDate, copiesAvail, 0); Console.WriteLine("New movie " + movie.GetTitle() + " added to database."); BST.Insert(movie); } }
static void Main(string[] args) { // Create a movieTree BST to hold movies and also a new // MemberCollection to hold members. MovieCollection.MovieTree BST = new MovieCollection.MovieTree(); MemberCollection memberCollection = new MemberCollection(); Member testMember = new Member("test", "test", "1", 1, 2414); memberCollection.AddMember(testMember); // Flags used to run program bool quit = false; bool logout = false; // Login details for admin user access. string adminUser = "******"; string adminPass = "******"; Movie movie1 = new Movie("movie6", "actor1", "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 3); BST.Insert(movie1); Movie movie2 = new Movie("movie5", "actor1", "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 7); BST.Insert(movie2); Movie movie3 = new Movie("movie10", "actor1", "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 2); BST.Insert(movie3); Movie movie4 = new Movie("movie9", "actor1", "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 4); BST.Insert(movie4); Movie movie5 = new Movie("movie2", "actor1", "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 1); BST.Insert(movie5); Movie movie6 = new Movie("movie4", "actor1", "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 3); BST.Insert(movie6); Movie movie7 = new Movie("movie7", "actor1", "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 9); BST.Insert(movie7); Movie movie8 = new Movie("movie11", "actor1", "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 0); BST.Insert(movie8); Movie movie9 = new Movie("movie8", "actor1", "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 4); BST.Insert(movie9); Movie movie10 = new Movie("movie1", "actor1", "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 3); BST.Insert(movie10); Movie movie11 = new Movie("movie3", "actor1", "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 1); BST.Insert(movie11); // Strings to hold the menus to prompt user input for Main Menu, // Staff Menu and Member Menu string mainMenu = "Welcome to the Community Library\n" + "==============Main Menu===========\n" + "1. Staff Login\n" + "2. Member Login\n" + "0. Exit\n" + "==================================="; string staffMenu = "============Staff Menu============\n" + "1. Add a new movie DVD\n" + "2. Remove a movie DVD\n" + "3. Register a new Member\n" + "4. Find a registered member's phone number\n" + "0. Return to main menu\n" + "==================================="; string memberMenu = "==============Member Menu==============\n" + "1. Display all movies\n" + "2. Borrow a movie DVD\n" + "3. Return a movie DVD\n" + "4. List current borrowed movie DVDs\n" + "5. Display top 10 most popular movies\n" + "0. Return to main menu\n" + "==================================="; // While quit is not set to true, run program. while (!quit) { Console.WriteLine(mainMenu); string input = Console.ReadLine(); // Exit Program if user input is 0. if (input == "0") { quit = true; } // Show staff login screen if user input is 1. else if (input == "1") { Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Please enter the admin username:"******"Please enter the admin password:"******"admin" && password == "adminPass") { logout = false; while (!logout) { Console.WriteLine(); Console.WriteLine(); Console.WriteLine(staffMenu); input = Console.ReadLine(); //Admin enters 0 and goes back to main menu if (input == "0") { logout = true; Console.WriteLine(); Console.WriteLine(); } //Admin enters 1 to add a new movie. if (input == "1") { HelperFunctions.Insert(BST); } //Admin enters 2 to remove a movie. if (input == "2") { Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Please enter movie name " + "which you wish to remove: "); string title = Console.ReadLine(); // Call return movie function to get Movie info. Movie movie = BST.ReturnMovie(BST.ReturnRoot(), title); if (movie == null) { Console.WriteLine("There is no movie with that name."); } else { bool check = BST.Delete(movie, memberCollection); if (check) { BST.movieCount--; Console.WriteLine(title + " has been deleted from the database."); } } } //Admin enters 3 to register a new user. if (input == "3") { // Call the helper function that contains the calls for user input. // Function has input parsing to check for incorrect user input. // Adds user to MemberCollection if it passes. HelperFunctions.AddUser(memberCollection); } //Admin enters 4 to search for users phone number by entering username if (input == "4") { Console.WriteLine("Please enter the persons " + "username to find their phone " + "number: "); string user = Console.ReadLine(); int phNo = memberCollection.ReturnPhNo(user); if (phNo != -1) { Console.WriteLine(); Console.WriteLine(); Console.WriteLine("The users phone number " + "is " + phNo); } else { Console.WriteLine("There are no users" + " registered with that username."); } } } } //Incorrect login details entered - return to main menu. else { Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Incorrect login details - " + "returning to main menu"); Console.WriteLine(); Console.WriteLine(); } } //Member Login else if (input == "2") { Console.WriteLine(); Console.WriteLine(); logout = false; string username = "******"; int password = 0; int num = 0; Console.WriteLine("Please enter username:"******"Please enter password:"******"1": Console.WriteLine(); Console.WriteLine(); Console.WriteLine("----ALL MOVIE INFO----"); BST.InOrderDisplayInfo(BST.ReturnRoot()); break; //Borrow a movie case "2": Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Please enter the " + "name of the movie you " + "wish to rent: "); movieTitle = Console.ReadLine(); movie = BST.ReturnMovie (BST.ReturnRoot(), movieTitle); memberCollection.Insert2Member (currentUser, movie); break; //Return a movie case "3": Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Please enter the " + "name of the movie you " + "wish to return: "); movieTitle = Console.ReadLine(); movie = BST.ReturnMovie (BST.ReturnRoot(), movieTitle); memberCollection.RemoveMovieFromMember (currentUser, movie); break; //Show borrowed movies case "4": memberCollection.ShowBorrowedMovies (currentUser); break; //Display top 10 rented movies. case "5": Console.WriteLine(); Console.WriteLine(); Console.WriteLine("----T0P 10 RENTED MOVIES----"); BST.DisplayTop10(); break; //Return to main menu. case "0": logout = true; Console.WriteLine(); Console.WriteLine(); break; } } else { logout = true; } } } //Incorrect input else { Console.WriteLine("Incorrect number entered - you must " + "enter a number between 0 - 2."); } } }