예제 #1
0
        //Adds a DVD of the user's choice to the library
        //Input: Information about a movie
        //Output: Movie movie added to MovieCollection _library
        static void AddDVD()
        {
            Console.Clear();
            Console.WriteLine("Logged in as {0} {1}", _current.FirstName, _current.Surname);
            Console.WriteLine("==============Add a new movie DVD===============");
            Console.WriteLine("   Please enter the movie's title\n");
            Console.WriteLine("   Or press 'Escape' to exit");
            Console.WriteLine("================================================\n");
            Console.Write(" Title: ");
            ConsoleKeyInfo key   = Console.ReadKey();
            string         title = "";

            if (key.Key == ConsoleKey.Escape)
            {
                return;
            }
            else
            {
                title += key.KeyChar.ToString();
            }
            title += Console.ReadLine();
            Console.Clear();
            Console.WriteLine("Logged in as {0} {1}", _current.FirstName, _current.Surname);
            Console.WriteLine("==============Add a new movie DVD===============");
            Console.WriteLine("   Please enter the movie's starring actors");
            Console.WriteLine("   Separate each star with a comma (,)");
            Console.WriteLine("================================================\n");
            Console.Write(" Stars: ");
            string[] parsedStarring = Console.ReadLine().Split(',');
            for (int i = 0; i < parsedStarring.Length; i++)
            {
                parsedStarring[i] = parsedStarring[i].TrimStart();
            }
            Console.Clear();
            Console.WriteLine("Logged in as {0} {1}", _current.FirstName, _current.Surname);
            Console.WriteLine("==============Add a new movie DVD===============");
            Console.WriteLine("   Please enter the movie's director");
            Console.WriteLine("================================================\n");
            Console.Write(" Director: ");
            string director = Console.ReadLine();

Runtime:
            Console.Clear();
            Console.WriteLine("Logged in as {0} {1}", _current.FirstName, _current.Surname);
            Console.WriteLine("==============Add a new movie DVD===============");
            Console.WriteLine("   Please enter the movie's runtime");
            Console.WriteLine("   Please give your response in minutes");
            Console.WriteLine("================================================\n");
            Console.Write(" Duration: ");
            if (!int.TryParse(Console.ReadLine(), out int parsedDuration))
            {
                Console.WriteLine("\n   Not a valid amount of time");
                Console.ReadKey(true);
                goto Runtime;
            }
Genre:
            Console.Clear();
            Console.WriteLine("Logged in as {0} {1}", _current.FirstName, _current.Surname);
            Console.WriteLine("==============Add a new movie DVD===============");
            Console.WriteLine("   Please enter the movie's genre");
            Console.WriteLine("   Choose between: Drama, Adventure,");
            Console.WriteLine("   Family, Action, Sci-Fi, Comedy,");
            Console.WriteLine("   Animated, Thriller or Other");
            Console.WriteLine("================================================\n");
            Console.Write(" Genre: ");
            string g = Console.ReadLine();

            if (g == "Sci-Fi")
            {
                g = "SciFi";
            }
            if (!Enum.TryParse(g, out Genre parsedGenre))
            {
                Console.WriteLine("\n   Not a valid genre");
                Console.ReadKey(true);
                goto Genre;
            }
Classification:
            Console.Clear();
            Console.WriteLine("Logged in as {0} {1}", _current.FirstName, _current.Surname);
            Console.WriteLine("===============Add a new movie DVD===============");
            Console.WriteLine("   Please enter the movie's classification");
            Console.WriteLine("   Choose: G (General)");
            Console.WriteLine("           PG (Parental Guidance)");
            Console.WriteLine("           M (Mature)");
            Console.WriteLine("           MA (Mature Accompanied)");
            Console.WriteLine("================================================\n");
            Console.Write(" Classification: ");
            if (!Enum.TryParse(Console.ReadLine(), out Classification parsedClassification))
            {
                Console.WriteLine("\n   Not a valid Classification");
                Console.ReadKey(true);
                goto Classification;
            }
ReleaseDate:
            Console.Clear();
            Console.WriteLine("Logged in as {0} {1}", _current.FirstName, _current.Surname);
            Console.WriteLine("==============Add a new movie DVD===============");
            Console.WriteLine("   Please enter the release date");
            Console.WriteLine("================================================\n");
            Console.Write(" Release Date: ");
            if (!DateTime.TryParse(Console.ReadLine(), out DateTime parsedReleaseDate))
            {
                Console.WriteLine("\n   Not a valid Date");
                Console.ReadKey(true);
                goto ReleaseDate;
            }
Copies:
            Console.Clear();
            Console.WriteLine("Logged in as {0} {1}", _current.FirstName, _current.Surname);
            Console.WriteLine("==============Add a new movie DVD===============");
            Console.WriteLine("   Please enter the amount of DVDs you");
            Console.WriteLine("   would like to add");
            Console.WriteLine("================================================\n");
            Console.Write(" Copies: ");
            if (!int.TryParse(Console.ReadLine(), out int parsedCopies))
            {
                Console.WriteLine("\n   Not a valid amount of copies");
                Console.ReadKey(true);
                goto Copies;
            }
Final:
            Console.Clear();
            Console.WriteLine("Logged in as {0} {1}", _current.FirstName, _current.Surname);
            Console.WriteLine("==============Add a new movie DVD===============");
            Console.WriteLine("   Do you want to add this movie?\n");
            Console.WriteLine("   {0, -15} {1, 29}", "Title:", title);
            Console.WriteLine("   {0, -15} {1, 29}", "Stars:", MovieCollection.Truncate(string.Join(", ", parsedStarring)));
            Console.WriteLine("   {0, -15} {1, 29}", "Director:", director);
            Console.WriteLine("   {0, -15} {1, 29}", "Duration:", parsedDuration.ToString() + " minutes");
            Console.WriteLine("   {0, -15} {1, 29}", "Genre:", parsedGenre.ToString());
            Console.WriteLine("   {0, -15} {1, 29}", "Classification:", parsedClassification.ToString());
            Console.WriteLine("   {0, -15} {1, 29}", "Release Date:", parsedReleaseDate.ToString("d", CultureInfo.CreateSpecificCulture("es-ES")));
            Console.WriteLine("   {0, -15} {1, 29}", "Copies:", parsedCopies.ToString());
            Console.WriteLine("================================================\n");
            Console.Write(" yes/no: ");
            string res = Console.ReadLine();

            switch (res)
            {
            case ("yes"):
            case ("Yes"):
            case ("y"):
            case ("Y"):
                AddDVD(title, parsedStarring, director, parsedDuration, parsedGenre, parsedClassification, parsedReleaseDate, parsedCopies);
                Console.WriteLine("\n   Successfully added {0} to the library", title);
                Console.ReadKey(true);
                break;

            case ("no"):
            case ("No"):
            case ("n"):
            case ("N"):
                break;

            default:
                goto Final;
            }
        }
예제 #2
0
        //Remove a DVD of the user's choice from the library
        //Input: Movie title
        //Output: Movie removed from MovieCollection _library
        static void RemoveDVD()
        {
RemoveStart:
            Console.Clear();
            Console.WriteLine("Logged in as {0} {1}", _current.FirstName, _current.Surname);
            Console.WriteLine("===============Remove a movie DVD===============");
            Console.WriteLine("   Please enter the title of the movie");
            Console.WriteLine("   you wish to remove\n");
            Console.WriteLine("   Or press 'Escape' to exit");
            Console.WriteLine("================================================\n");
            Console.Write(" Title: ");
            ConsoleKeyInfo key   = Console.ReadKey();
            string         title = "";

            if (key.Key == ConsoleKey.Escape)
            {
                return;
            }
            else
            {
                title += key.KeyChar.ToString();
            }
            title += Console.ReadLine();
            if (_library.Find(title) == null)
            {
                Console.WriteLine("\n   Could not find movie {0}", title);
                Console.ReadKey(true);
                goto RemoveStart;
            }
            Movie toBeRemoved = _library.Find(title);

RemoveConfirm:
            Console.Clear();
            Console.WriteLine("Logged in as {0} {1}", _current.FirstName, _current.Surname);
            Console.WriteLine("===============Remove a movie DVD===============");
            Console.WriteLine("   Do you want to remove this movie?\n");
            Console.WriteLine("   {0, -15} {1, 29}", "Title:", toBeRemoved.Title);
            Console.WriteLine("   {0, -15} {1, 29}", "Stars:", MovieCollection.Truncate(string.Join(", ", toBeRemoved.Starring)));
            Console.WriteLine("   {0, -15} {1, 29}", "Director:", toBeRemoved.Director);
            Console.WriteLine("   {0, -15} {1, 29}", "Duration:", toBeRemoved.Duration.ToString() + " minutes");
            Console.WriteLine("   {0, -15} {1, 29}", "Genre:", toBeRemoved.Genre.ToString());
            Console.WriteLine("   {0, -15} {1, 29}", "Classification:", toBeRemoved.Classification.ToString());
            Console.WriteLine("   {0, -15} {1, 29}", "Release Date:", toBeRemoved.ReleaseDate.ToString("d", CultureInfo.CreateSpecificCulture("es-ES")));
            Console.WriteLine("   {0, -15} {1, 29}", "Copies:", toBeRemoved.Copies.ToString());
            Console.WriteLine("================================================\n");
            Console.Write(" yes/no: ");
            string res = Console.ReadLine();

            switch (res)
            {
            case ("yes"):
            case ("Yes"):
            case ("y"):
            case ("Y"):
                RemoveDVD(title);
                Console.WriteLine("\n   Successfully removed {0} from the library", title);
                Console.ReadKey(true);
                break;

            case ("no"):
            case ("No"):
            case ("n"):
            case ("N"):
                break;

            default:
                goto RemoveConfirm;
            }
        }