Esempio n. 1
0
// Vi har olika konstruktorer för olika syften.
// Denna konstruktorn används för att skapa klientobjekten.
        public Client(string aName, int aId, DateTime aCreationDate, CheckingAccount aCheckingsAccount, SavingsAccount aSavingsAccount)
        {
            name            = aName;
            id              = aId;
            creationDate    = aCreationDate;
            checkingAccount = aCheckingsAccount;
            savingsAccount  = aSavingsAccount;
        }
Esempio n. 2
0
        //CreateClient är till för att skapa ett klient objekt.
        public static void CreateClient()
        {
            Console.Title = "Create Client";
            int    id          = ++idNumberMaker;
            string fullName    = null;
            string firstOrLast = "first";
            bool   ValidateName;

            Console.WriteLine("Creating client");
            Console.WriteLine("----------------");

            do
            {
                ValidateName = false;

                string input   = CheckNameValidity(firstOrLast);
                char[] letters = input.ToCharArray();

                for (int i = 0; i < letters.Length; i++)
                {
                    if (letters[i] == letters[0])
                    {
                        //Vi vill göra första bokstaven i namnet till stor bokstav
                        char letterChar = letters[i];
                        letterChar = char.ToUpper(letterChar);
                        letters[i] = letterChar;
                    }
                }

                if (firstOrLast == "first")
                {
                    fullName    = new string(letters);
                    firstOrLast = "last";
                }
                else if (firstOrLast == "last")
                {
                    //Vi slår ihop namnen till ett och samma.
                    fullName    += " " + new string(letters);
                    ValidateName = true;
                }
            } while (!ValidateName);

            //Vi skapar objektet creationDate av typen DateTime för att logga när kund är skapad.
            DateTime creationDate = DateTime.Now;

            CheckingAccount checkingAccount = new CheckingAccount(0);
            SavingsAccount  savingsAccount  = new SavingsAccount(5000);

            //Vi skapar ett objekt utifrån en konstruktor i client som vi använder för att se kundens alla uppgifter.
            Client client = new Client(fullName, id, creationDate, checkingAccount, savingsAccount);

            Console.WriteLine();
            #region Easter Egg
            if (client.name == "Snake Snakesson")
            {
                Snakeclass.Snake.SnakeGame();
                Console.Clear();
                Console.SetWindowSize(100, 40);
            }
            #endregion
            Player.SoundLocation = "confirm.wav";
            Player.Play();
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("----------------");
            Console.WriteLine("Client created");
            Console.WriteLine("----------------");
            Console.WriteLine($"Name: {fullName}\nID: {id}\nAccount created at: {creationDate}\nChecking Account: {checkingAccount.amount} kr\nSavings Account: {savingsAccount.amount} kr");
            Console.WriteLine("----------------");
            Console.ResetColor();

            //Den skapade klienten läggs till i vår klientlista.
            Client.clientList.Add(client);

            Console.WriteLine();
            Colours.Red("Press any key to return to Main Menu");
            Console.ReadKey();
            Menu.MainMenu();
        }
Esempio n. 3
0
        // Skapar en metod för att genomföra en överföring.
        public static void ExecuteTransactions()
        {
            Console.Title = "Transaction";

            Console.Clear();
            // Skapar en variabel där inmatning av belopp sparas.
            decimal inputAmount;
            // skapar en bool som säger om vi har hittat en klient eller inte.
            bool foundClient = false;
            // skapar ett objekt av klient som vi kallar för första klienten.

            Client firstClient = new Client();
            // skapar ett objekt av klient som vi kallar för andra klienten.
            Client secondClient = new Client();

            // 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.Clear();

                Console.Write("Please enter your account ID: ");
                // 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 firstId = CheckIfNumber(choiceId);

                Console.WriteLine();
                // letar igenom klient listan. Vi för över infomrationen från klienten vi är på till first client.
                // Om det inmatade id:t hittas i listan av klienter, sätter vi även bool foundclient till true.
                foreach (Client client in Client.clientList)
                {
                    if (firstId == client.id)
                    {
                        firstClient = client;
                        foundClient = true;
                    }
                }
                // 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);

            // Om klientens checkingAcc är 0 eller mindre skriver vi ut den informationen och ger alternativet
            // att göra en ny transaktion via RepeatQuery metoden och choiseTransaction som argument.
            if (firstClient.checkingAccount.amount <= 0)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine($"{firstClient.name} unfortunately has no money in his/her checking account.");
                Console.ResetColor();
                RepeatQuery(choiceTransaction);
            }
            // Sätter bool till false för att vi vill använda samma bool till nästa klient.
            foundClient = false;
            // 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.Clear();
                Console.WriteLine($"Transferring funds from: {firstClient.id}\n\n");

                Console.Write("Please enter the id of the person you would like to transfer funds to: ");
                // 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 secondId = CheckIfNumber(choiceId);
                Console.WriteLine();
                // letar igenom klient listan. Vi för över infomrationen från klienten vi är på till second client.
                // Om det inmatade id:t hittas i listan av klienter, sätter vi även bool foundclient till true.
                foreach (Client client in Client.clientList)
                {
                    if (secondId == client.id)
                    {
                        secondClient = client;
                        foundClient  = true;
                    }
                }
                // 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.Clear();

            Console.Write($"Transferring funds from "); Colours.Red($"{firstClient.id} "); Console.Write("to ");
            Colours.Red($"{secondClient.id}\n\n\n");

            Console.WriteLine($"{firstClient.name} has {firstClient.checkingAccount.amount} kr in his/her Checking Account\n");

            Console.Write("Enter the amount of funds you would like to transfer: ");
            // kollar att det inmatade värdet är ett nummer och även om det är ett belopp genom argumentet ChoiceTrans.
            // Det returnerade värdet från CheckIfNumber stoppas sedan in i variabeln inputAmount.{firstClient.name} has
            inputAmount = CheckIfNumber(choiceTransaction);
            // 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(choiceTransaction, firstClient, inputAmount);

            // Vill att överföringssumman inte ska vara mer än 2 decimaler och avrundar därmed input.
            inputAmount = (Math.Round(inputAmount, 2));

            // Om första klientens id inmatning matchar andra klientens id inmatning skickas pengarna från sitt egna
            // checkingAcc till sitt egna SavingsAcc.
            if (firstClient == secondClient)
            {
                // Skapar ett objekt av savingsAccount för att nedan komma åt interest metoden.
                SavingsAccount savingsAcc = new SavingsAccount();

                firstClient.checkingAccount.amount -= inputAmount;
                firstClient.savingsAccount.amount  += inputAmount;

                toAccountType = "Saving Account";
                Console.WriteLine($"{firstClient.name} transferred {inputAmount} from his/her checking account " +
                                  $"to his/her {toAccountType.ToLower()}.");

                if (firstClient.interestBonus == false)
                {
                    decimal interestBonus = firstClient.savingsAccount.amount * interest;
                    Console.WriteLine();
                    Console.BackgroundColor = ConsoleColor.Green;
                    Console.ForegroundColor = ConsoleColor.Black;
                    Console.WriteLine($"{firstClient.name} earned an interest bonus of {interestBonus.ToString("F2")} kr");
                    Console.ResetColor();

                    savingsAcc.Interest(firstClient);
                }
            }
            // Är första inmatningen av klientens id inte samma som den andra, skickas pengarna från first clients checkingAcc
            // till second clients checkingAcc.
            else
            {
                firstClient.checkingAccount.amount  -= inputAmount;
                secondClient.checkingAccount.amount += inputAmount;
                toAccountType = "Checking Account";
                Console.WriteLine($"{firstClient.name} transferred {inputAmount} to {secondClient.name}'s {toAccountType.ToLower()}.");
            }

            DateTime dateAndTime = DateTime.Now;
            // Vi skapar ett objekt av Transactions via konstruktorn i den klassen.
            Transactions trans = new Transactions(dateAndTime, inputAmount, choiceTransaction, toAccountType, firstClient, secondClient);

            // Lägger till den genomförda transaktionen i vår lista av transaktioner.
            transactionList.Add(trans);
            // använder ljudfilen ca-ching som ligger i projektet.
            player.SoundLocation = "ca-ching.wav";
            player.Play();

            Console.WriteLine();
            // frågar användaren om den vill göra en ny transaktion.
            RepeatQuery(choiceTransaction);
            Console.ReadKey();
        }