Ejemplo n.º 1
0
        //Deze method kopieërt een bestaade film.
        private static void CopyMovie()
        {
            JsonSerializerOptions options = new JsonSerializerOptions();

            options.WriteIndented = true;
            Console.WriteLine("Welke film wilt u kopiëeren?");
            Movies.DisplayMovies(0);
            Movies chosenMovie = null;
            int    choice1     = -1;

            while (chosenMovie == null)
            {
                try
                {
                    choice1 = int.Parse(Console.ReadLine());
                    if (choice1 > 0 || choice1 <= Program.movies.Count)
                    {
                        chosenMovie = Program.movies[choice1 - 1];
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("Voer een geldige optie in.");
                }
            }
            Console.WriteLine($"U heeft gekozen voor film {chosenMovie.movieID}");
            int movieID = Movies.ChangeID();

            Console.WriteLine($"Vul een nieuwe starttijd in. Oude is: {Program.movies[choice1 - 1].startTime}");
            DateTime startTime = Movies.ChangeStart();

            Console.WriteLine($"Vul een nieuwe zaal in. Oude is {Program.movies[choice1 - 1].screenNumber + 1}.");
            int screenNumber = Movies.ChangeScreen();

            Console.WriteLine($"Starttijd : {chosenMovie.startTime}, Zaal: {chosenMovie.screenNumber + 1} ");
            Console.WriteLine("Kloppen al deze gegevens? Zo ja, vul 'y' in.");
            string snackInput = Console.ReadLine();

            if (snackInput == "y" || snackInput == "Y")
            {
                Movies movieToAdd = new Movies(movieID, chosenMovie.MovieName, startTime, screenNumber, chosenMovie.runTime, chosenMovie.genre, chosenMovie.director, chosenMovie.movieType, chosenMovie.Synopsis);
                Program.movies.Add(movieToAdd);
                var jsonString = JsonSerializer.Serialize(Program.movies, options);
                File.WriteAllText("movies.json", jsonString);
                Console.WriteLine("Film data veranderd.");
            }
            else
            {
                Console.WriteLine("Proces afgesloten. Terugkeren naar het hoofdmenu...");
            }
        }
Ejemplo n.º 2
0
        static void choiceMenu()
        {
            while (true)
            {
                int userChoice = 0;

                Console.WriteLine(" ----------------------------------------------------");
                Console.WriteLine("| Selecteer een optie met het bijbehorende nummer:   |");
                Console.WriteLine("| 1) Bekijk ons filmaanbod                           |");
                Console.WriteLine("| 2) Maak een reservering                            |");
                Console.WriteLine("| 3) Zaalstatus                                      |");
                Console.WriteLine("| 4) Bekijk onze prijzen                             |");
                Console.WriteLine("| 5) Account registratie                             |");
                if (loggedIn)
                {
                    Console.WriteLine("| 6) Uitloggen                                       |");
                }
                else
                {
                    Console.WriteLine("| 6) Inloggen                                        |");
                }
                Console.WriteLine("| 7) Reservering annuleren                           |");
                Console.WriteLine("| 8) Dagoverzicht                                    |");
                Console.WriteLine("| 9) Menukaart                                       |");
                Console.WriteLine("| 10) Afsluiten                                      |");
                Console.WriteLine(" ----------------------------------------------------\n");


                while ((userChoice < 1 || userChoice > 10) &&
                       userChoice != 50)
                {
                    try
                    {
                        userChoice = int.Parse(Console.ReadLine());
                        if ((userChoice < 1 || userChoice > 10) && userChoice != 50)
                        {
                            Console.WriteLine("Maak a.u.b. een keuze uit één van de opties:");
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Maak a.u.b. een keuze uit één van de opties:");
                    }
                }
                //deze switch statement controleert of de gebruiker optie 1 of 2 kiest
                switch (userChoice)
                {
                case 1:
                    Console.WriteLine("Wilt u 1) op termen zoeken, of 2) de hele film lijst zien?");
                    string searchChoice = Console.ReadLine();
                    switch (searchChoice)
                    {
                    case "1":
                        Console.WriteLine("Vul uw zoektermen in. (genre, titels...)");
                        string   terms      = Console.ReadLine();
                        string[] arrayTerms = terms.Split();
                        Movies.DisplayMovies(arrayTerms);
                        break;

                    case "2":
                        Movies.DisplayMovies();
                        Console.WriteLine("\n");
                        break;
                    }
                    break;

                case 2:
                    Console.WriteLine("Voor welke film wilt u tickets kopen:");
                    userChoice = -1;
                    int index = -1;
                    Movies.DisplayMovies(userChoice);
                    while (index < 1 || index > movies.Count)
                    {
                        //hier wordt gecheckt of de gebruiker wel een bestaand filmnummer kiest
                        //zo ja wordt de reserveTicket method aangeroepen en de geselecteerde film als parameter meegegeven
                        try
                        {
                            userChoice = int.Parse(Console.ReadLine());
                            for (int i = 0; i < movies.Count; i++)
                            {
                                if (Equal(movies[i].movieID, userChoice))
                                {
                                    index = movies.IndexOf(movies[i]);
                                    break;
                                }
                            }
                            Movies movieToReserve = movies[index];
                            reserveTicket(movieToReserve);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("Voert u a.u.b. een film nummer in:");
                        }
                    }
                    break;

                case 3:
                    Console.WriteLine("Van welke film wilt u de zaalstatus zien?");
                    int statusChoice = -1;
                    Movies.DisplayMovies(statusChoice);
                    while (statusChoice < 1 || statusChoice > movies.Count)
                    {
                        try
                        {
                            //zelfde code bij case 2, maar deze roept de zaalstatus functie aan
                            statusChoice = int.Parse(Console.ReadLine());
                            Movies statusOf = movies[statusChoice - 1];
                            Movies.ScreenSeats(statusOf);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("Voert u a.u.b. een film nummer in:");
                        }
                    }
                    break;

                case 4:
                    MoviePrice.PriceList();
                    break;

                case 5:
                    registerCustomer();
                    break;

                case 6:
                    if (loggedIn)
                    {
                        loggedInCustomerUsername = "";
                        loggedIn = false;
                        Console.WriteLine("U bent nu uitgelogd.");
                    }
                    else
                    {
                        loginCustomer();
                    }
                    break;

                case 7:
                    cancelReservation();
                    break;

                case 8:
                    Movies.dayOverview();
                    break;

                case 9:
                    Snacks.printSnacks();
                    break;

                case 10:
                    Environment.Exit(0);
                    break;

                case 50:
                    string code = "B3stC1n3m4ever!";
                    Console.WriteLine("Enter Code: ");
                    string input = Console.ReadLine();
                    if (input == code)
                    {
                        Console.WriteLine("Welkom, manager");
                        Manager.choiceMenu(true);
                    }
                    break;
                }
            }
        }
Ejemplo n.º 3
0
        /** in deze method wordt met de meegegeven movie een ticket aangemaakt
         * wanneer de gebruiker aangeeft dat de geselecteerde film de juiste is
         */
        static void reserveTicket(Movies movie)
        {
            Console.WriteLine("U heeft gekozen voor: " + movie.MovieName);
            Console.WriteLine("Type \'y\' om uw keuze te bevestigen en \'n\' om uw keuze te wijzigen: ");
            Customer customer;

            //deze while loop controleert of de gebruiker de juiste keuze heeft gemaakt
            string userConfirmation = "";

            while (userConfirmation != "y" && userConfirmation != "Y")
            {
                userConfirmation = Console.ReadLine();
                switch (userConfirmation)
                {
                //als de gebruiker bevestigd met y of Y wordt er een ticket aangemaakt waar de geselecteerde film aan wordt meegegeven
                //vervolgens wordt om de gebruiker zijn gegevens gevraagd en wordt hier een nieuwe customer instance van gemaakt
                case "y":
                case "Y":
                {
                    Ticket ticket = null;
                    Console.WriteLine("Wilt u een VIP ticket kopen? (y/n)");
                    Console.WriteLine("Een VIP ticket garandeert de beste zitplaatsen, voor maar drie euro extra!");
                    string vipChoice = "";
                    bool   isVip     = false;
                    while (vipChoice != "y" || vipChoice != "Y")
                    {
                        vipChoice = Console.ReadLine();
                        if (vipChoice == "y" || vipChoice == "Y")
                        {
                            isVip = true;
                            break;
                        }
                        if (vipChoice == "n" || vipChoice == "N")
                        {
                            isVip = false;
                            break;
                        }
                        else
                        {
                            Console.WriteLine("Maakt u a.u.b. een keuze:");
                        }
                    }
                    Console.WriteLine("Hoeveel tickets wilt u bestellen? (Min 1, Max 10)");
                    int numberOfPeople = -1;
                    while (numberOfPeople < 1 || numberOfPeople > 10)
                    {
                        try
                        {
                            numberOfPeople = int.Parse(Console.ReadLine());
                            if (numberOfPeople < 1)
                            {
                                Console.WriteLine("Het aantal personen kan niet kleiner dan 1 zijn:");
                            }
                            else if (numberOfPeople > 10)
                            {
                                Console.WriteLine("Het aantal personen mag niet groter dan 10 zijn:");
                            }
                            else
                            {
                                Ticket tempTicket = new Ticket(movie, numberOfPeople, isVip, 0, 0);

                                Tuple <int, double>[] peoplePrices = tempTicket.PriceCalculator(numberOfPeople, movie, isVip);
                                tempTicket.TotalPrice = tempTicket.PriceSummer(peoplePrices);
                                Movies.ScreenSeats(movie);

                                int    selectedRow  = movie.SelectRow(isVip);
                                string selectedSeat = movie.SelectSeat(selectedRow, numberOfPeople).ToString();

                                for (int i = int.Parse(selectedSeat); i < numberOfPeople; i++)
                                {
                                    selectedSeat = selectedSeat + " " + (i + 1);
                                }

                                Console.WriteLine($"U heeft gekozen voor rij {selectedRow} en stoel {selectedSeat}");
                                movie.saveMovieScreenJson();
                                tempTicket.SelectedSeat = int.Parse(selectedSeat);
                                tempTicket.SelectedRow  = selectedRow;
                                ticket = tempTicket;
                            }
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("Voert u a.u.b. het aantal personen in (Min 1, Max 10)");
                        }
                    }
                    if (loggedIn == true)
                    {
                        customer = registeredCustomers.Find(x => x.CustomerUserName == loggedInCustomerUsername);
                        Console.WriteLine("\nControleer uw gegevens:");
                        Console.WriteLine("Naam: " + customer.CustomerName);
                        Console.WriteLine("Email: " + customer.Email);
                    }
                    else
                    {
                        Console.WriteLine("Voert u alstublieft uw naam in:");
                        string customerName = Console.ReadLine();

                        Console.WriteLine("Voert u alstublieft uw e-mail adres in:");
                        string customerEmail = Console.ReadLine();

                        while (IsValidEmail(customerEmail) == false)
                        {
                            Console.WriteLine("Voert u a.u.b. een geldig email adres in:");
                            customerEmail = Console.ReadLine();
                        }



                        Console.WriteLine("Voert u alsublieft uw geboortedatum in (dd/mm/yyyy):");
                        DateTime customerBirthDay = DateTime.Today;
                        //deze while loop met try/catch clausule zorgt ervoor dat de gebruiker een correcte datum invult
                        //die ook converteerbaar is naar een DateTime format
                        //zonder dat de app crasht als de gebruiker een foute datum invult
                        while (customerBirthDay == DateTime.Today)
                        {
                            try
                            {
                                string      customerBDayStr = Console.ReadLine();
                                CultureInfo dutchCI         = new CultureInfo("nl-NL", false);
                                customerBirthDay = DateTime.Parse(customerBDayStr, dutchCI);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Uw geboortedatum moet als dd/mm/yyyy ingevoerd worden, bijv: 01/01/2020:");
                            }
                        }
                        customer = new Customer(customerName, customerBirthDay, customerEmail);
                    }

                    Console.WriteLine("Wilt u snacks bij de film bestellen? y/n");
                    string        snackInput   = Console.ReadLine();
                    List <Snacks> chosenSnacks = new List <Snacks>();
                    if (snackInput == "y" || snackInput == "Y")
                    {
                        chosenSnacks = Snacks.snackKeuze();
                        foreach (Snacks s in chosenSnacks)
                        {
                            ticket.TotalPrice = ticket.TotalPrice + s.Price;
                        }
                    }
                    else
                    {
                        chosenSnacks = null;
                    }

                    //dit genereert een random string van cijfers en letters (de reserveringscode waarmee de klant naar de kassa kan)
                    string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
                    char[] reservationCodeChars = new char[8];
                    Random random = new Random();

                    for (int i = 0; i < reservationCodeChars.Length; i++)
                    {
                        reservationCodeChars[i] = chars[random.Next(chars.Length)];
                    }

                    string reservationCode = new string(reservationCodeChars);

                    Console.WriteLine("\nU heeft gekozen voor: " + movie.MovieName + " op " + movie.startTime);
                    Console.WriteLine("De film speelt zich af in zaal: " + movie.whichScreen.ScreenNumber);
                    Console.WriteLine("De totale prijs is: €" + String.Format("{0:0.00}", ticket.TotalPrice));

                    Console.WriteLine("\nWilt u uw keuze bevestigen? (y/n)");
                    string userChoice1 = Console.ReadLine();

                    if (userChoice1 == "y")
                    {
                        Console.WriteLine("Uw reserveringscode is: " + reservationCode);
                        ticket.CustomerName    = customer.CustomerName;
                        ticket.CustomerEmail   = customer.Email;
                        ticket.ReservationCode = reservationCode;
                        sendCustomerMail(customer.CustomerName, customer.Email, reservationCode,
                                         movie.MovieName, movie.startTime, movie.whichScreen.ScreenNumber,
                                         ticket.TotalPrice, ticket.SelectedSeat, ticket.SelectedRow);
                        saveReservationJson(ticket);
                    }
                    else
                    {
                        Console.WriteLine("Voor welke film wilt u tickets kopen:");
                        int userChoice = -1;
                        while (userChoice < 1 || userChoice > movies.Count)
                        {
                            try
                            {
                                userChoice = int.Parse(Console.ReadLine());
                                Movies movieToReserve = movies[userChoice - 1];
                                reserveTicket(movieToReserve);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Voert u a.u.b. een film nummer in:");
                            }
                        }
                    }
                    break;
                }

                //wanneer de gebruiker n of N invult bij de bevestigingsvraag
                //moet deze een nieuwe film kiezen die aan deze method meegegeven wordt
                case "n":
                case "N":
                {
                    Console.WriteLine("Voor welke film wilt u tickets kopen:");
                    int userChoice = -1;
                    int index      = -1;
                    Movies.DisplayMovies(userChoice);
                    while (index < 1 || index > movies.Count)
                    {
                        try
                        {
                            userChoice = int.Parse(Console.ReadLine());
                            for (int i = 0; i < movies.Count; i++)
                            {
                                if (Equal(movies[i].movieID, userChoice))
                                {
                                    index = movies.IndexOf(movies[i]);
                                    break;
                                }
                            }
                            Movies movieToReserve = movies[index];
                            reserveTicket(movieToReserve);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("Voert u a.u.b. een film nummer in:");
                        }
                    }

                    break;
                }

                default:
                    Console.WriteLine("Kiest u a.u.b. voor één van de opties:");
                    break;
                }
            }
        }
Ejemplo n.º 4
0
        private static void ChangeMovie()
        {
            JsonSerializerOptions options = new JsonSerializerOptions();

            options.WriteIndented = true;
            Console.WriteLine("Van welke film wilt u de data veranderen?");
            Movies.DisplayMovies(0);
            Movies chosenMovie = null;
            int    choice1     = 0;

            while (chosenMovie == null)
            {
                try
                {
                    choice1 = int.Parse(Console.ReadLine());
                    if (choice1 > 0 || choice1 <= Program.movies.Count)
                    {
                        chosenMovie = Program.movies[choice1 - 1];
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("Voer een geldige optie in.");
                }
            }
            Console.WriteLine($"U heeft gekozen voor film {chosenMovie.movieID}");
            Console.WriteLine("Welke data wilt u veranderen? \n Starttijd / Zaal / Beschrijving");
            string choice2 = "";

            while (choice2.ToLower() != "Starttijd".ToLower() && choice2.ToLower() != "Zaal".ToLower() && choice2.ToLower() != "Beschrijving".ToLower())
            {
                choice2 = Console.ReadLine();
                if (choice2.ToLower() != "Starttijd".ToLower() && choice2.ToLower() != "Zaal".ToLower() && choice2.ToLower() != "Beschrijving".ToLower())
                {
                    Console.WriteLine("Verkeerde invoer. Kies een van de bovenstaande opties.");
                }
            }
            if (choice2.ToLower() == "Starttijd".ToLower())
            {
                Console.WriteLine($"Vul een nieuwe starttijd in. Oude is {Program.movies[choice1 - 1].startTime}");
                chosenMovie.startTime = Movies.ChangeStart();
            }
            else if (choice2.ToLower() == "Zaal".ToLower())
            {
                Console.WriteLine($"Vul een nieuwe zaal in. Oude is {Program.movies[choice1 - 1].screenNumber + 1}.");
                chosenMovie.screenNumber = Movies.ChangeScreen();
            }
            else if (choice2.ToLower() == "Beschrijving".ToLower())
            {
                Console.WriteLine($"Vul een nieuwe beschrijving in. Oude: {Program.movies[choice1 - 1].Synopsis}.");
                chosenMovie.Synopsis = Console.ReadLine();
                Console.WriteLine($"Nieuwe bescrijving is: {chosenMovie.Synopsis}");
            }
            Console.WriteLine("Kloppen al deze gegevens? Zo ja, vul 'y' in.");
            string snackInput = Console.ReadLine();

            if (snackInput == "y" || snackInput == "Y")
            {
                Program.movies[choice1 - 1].startTime    = chosenMovie.startTime;
                Program.movies[choice1 - 1].screenNumber = chosenMovie.screenNumber;
                Program.movies[choice1 - 1].Synopsis     = chosenMovie.Synopsis;
                var jsonString = JsonSerializer.Serialize(Program.movies, options);
                File.WriteAllText("movies.json", jsonString);
                Console.WriteLine("Film data veranderd.");
            }
            else
            {
                Console.WriteLine("Proces afgesloten. Terugkeren naar het hoofdmenu...");
            }
        }