// Vi skapar en metod för att kunna se genomförda transaktioner public static void ShowTransactions() { Console.Title = "List of Transactions"; // Skapar en bool för att se om listan innehåller något i huvud taget. bool IsEmpty = !transactionList.Any(); // Finns det inget i listan så skriv ut följande och gå tillbaka till main menu. if (IsEmpty) { Console.WriteLine("There are no transactions at the moment"); Colours.Red("Press any key to continue "); Console.ReadKey(); Menu.MainMenu(); } // Om det finns något i listan så skriver den ut innehållet. else { // Skriver ut varje transkation och om det är en insättning skriver den ut else. // Är det en transaktion skriver den ut If. foreach (Transactions trans in transactionList) { Console.WriteLine($"Transaction type: {trans.transactionType}"); Console.WriteLine($"Date and time: {trans.dateAndTime}"); Console.Write($"Amount: "); Colours.Green($" {trans.amount}"); Console.WriteLine(" kr"); if (trans.transactionType == choiceTransaction) { Console.WriteLine($"From client id: {trans.firstClient.id}"); Console.WriteLine($"To client id: {trans.secondClient.id}"); } else { Console.WriteLine($"To client id: {trans.firstClient.id}"); } Console.WriteLine(); } Colours.Red("Press any key to continue"); Console.ReadKey(); Menu.MainMenu(); } }
//Denna metoden kollar om klienten har uppfyllt kraven för att få en biobiljett och skriver isf ut det. public void CinemaTicket(Client client) { // Kraven för att klient ska uppnå biobiljetts bonus. if ((DateTime.Now.Date - client.creationDate.Date).Days > 30 && client.checkingAccount.amount > 100 && client.cinemaBonus == false) { Console.WriteLine(); Console.BackgroundColor = ConsoleColor.Green; Console.ForegroundColor = ConsoleColor.Black; Console.WriteLine("You have received a free cinema ticket, ONLY ONE!"); Console.ResetColor(); Console.WriteLine(); // skapar en counter för att visa en siffra framför filmerna i filmmenyn. int counter = 1; // loopar igenom filmlistan och skriver ut objektens attribut för filmernas titel. foreach (Movies movie in Movies.movieList) { Console.Write(counter + ") "); Colours.Cyan(movie.title); Console.WriteLine(); Console.Write(" tickets left: "); if (movie.ticketsAvailable < 2) { Colours.Red($"{movie.ticketsAvailable}\n"); } else { Colours.Green($"{movie.ticketsAvailable}\n"); } counter++; } Console.WriteLine("----------"); Console.Write("0) "); Colours.Red("No thanks, I don't want a movie ticket\n"); // använder variablen för att jämföra user input med filmobjektets indexPlace. string choice; // använder variablen för att användaren alltid ska behöva göra ett val tills ett möjligt val är gjort. bool invalidInput; // använder variabeln för att säga om vi har hittat en film eller inte. bool foundMovie = false; do { Console.WriteLine(); Console.Write("Choose which movie: "); choice = Console.ReadLine(); invalidInput = false; // loopar igenom movielistan och kollar om användarens val stämmer överrens med filmobjektets indexPlace. foreach (Movies movie in Movies.movieList) { // konverterar till string för att vi senare i IF, måste jämföra två likadana datatyper. // Använder oss utav string för att det hanterar även bokstäver vid inmatning string indexPlace = Convert.ToString(movie.indexPlace); if (choice == indexPlace) { // Tar in movie och klient som argument för att vi vill ha klientens val av film. Movies.UpdateMovies(movie, client); foundMovie = true; break; } } if (choice == "0") { Console.WriteLine("You chose not to go to the movies."); client.movieChoice = null; } else if (!foundMovie) { Console.WriteLine("Invalid input"); invalidInput = true; } } while (invalidInput); client.cinemaBonus = true; } // detta är else if till första if. Hade detta varit en enskild if hade programmet kört båda stegen // När vi har valt en biljett sedan innan. else if (client.cinemaBonus == true) { Console.WriteLine(); Console.Write($"You have claimed a cinema ticket for "); Colours.Cyan(client.movieChoice.title); Console.WriteLine(); } }
// skapar en metod som är till för att göra insättningar. public static void ExecuteDeposit() { Console.Title = "Deposit"; Console.Clear(); // skapar endast en first client för att vi inte kommer skapa en second client när vi gör en insättning. Client firstClient = new Client(); decimal inputAmount; bool foundClient = false; Console.Clear(); Console.WriteLine("--- Deposit Money ---"); Console.WriteLine(); // gör en do While för att vi vill att användare ska mata in klient id tills programmet hittar en matchande klient. do { Console.Write("Enter the ID of the customer: "); // Här kollar vi om inmatningen är ett nummer genom metoden CheckIfNumber. // Är det inte det, så skriver programmet ut att det inte är ett nummer samt att man ska mata in ett id igen. decimal id = CheckIfNumber(choiceId); Console.WriteLine(); // Systemet kontrollerar att det inmatade id:t en klients id i klientlistan. foreach (Client client in Client.clientList) { if (id == client.id) { firstClient = client; foundClient = true; break; } } // Hittar vi ingen klient med det inmatade id:t visar vi felmedd. if (!foundClient) { Colours.Red("No such client was found\n"); ErrorMessage(); } } while (!foundClient); Console.WriteLine($"Name: {firstClient.name}"); Console.WriteLine(); Console.Write("Enter the amount to deposit: "); //kollar att det inmatade värdet är ett nummer och även om det är ett belopp genom argumentet ChoiceDeposit. // Det returnerade värdet från CheckIfNumber stoppas sedan in i variabeln inputAmount. inputAmount = CheckIfNumber(choiceDeposit); // Kollar så att summan man försöker föra över är godkänd enligt logiken i ValidateAmount. // Det returnerade värdet från ValidateAmount stoppas sedan in i variabeln inputAmount. inputAmount = ValidateAmount(choiceDeposit, firstClient, inputAmount); player.SoundLocation = "ca-ching.wav"; player.Play(); Console.WriteLine(); Console.Write($"Sucessfully deposited "); Colours.Green($"{inputAmount}"); Console.WriteLine(" kr to your account!"); // När transaktionen är godkänd säger vi att klientens checkingAcc är uppdaterat med summan av överföringen. firstClient.checkingAccount.amount += inputAmount; DateTime dateAndTime = DateTime.Now; Console.WriteLine($"{firstClient.name}, you now have {firstClient.checkingAccount.amount} kr in your checking account"); Console.WriteLine(); string toAccountType = "Checking Account"; // Skapar ett objekt av transaktions klassen från en konstruktor. Transactions trans = new Transactions(dateAndTime, inputAmount, choiceDeposit, toAccountType, firstClient); // Lägger till den genomförda transaktionen till listan av transaktioner. transactionList.Add(trans); // Kallar på RepeatQuery för att ge användaren valet att göra en ny insättning med hjälp av angivet argument. RepeatQuery(choiceDeposit); }