public static Customer AskForCustomerInfo() { Console.WriteLine("* Lägg till ny kund *"); Output.WhiteColor("Obligatoriskt"); var name = AskFor("Namn"); var adress = AskFor("Adress"); var zipCode = AskFor("Postnummer"); var city = AskFor("Postort"); var orgNr = AskFor("Organisationsnummer"); Output.WhiteColor("Valfritt"); Console.Write($"Country:"); var country = Console.ReadLine(); Console.Write($"Region: "); var region = Console.ReadLine(); Console.Write($"Telefon: "); var tel = Console.ReadLine(); return(new Customer() { Name = name, Adress = adress, City = city, Country = country, ZipCode = zipCode, Region = region, OrganisationNumber = orgNr, Telephone = tel }); }
private static void CreateWithdrawl(Bank bank) { Output.WhiteColor("* Uttag *"); while (true) { if (AskForAccount(bank, out var id)) { var account = bank.GetSingleAccount(id); Console.WriteLine($"Saldo innan uttag: {account.Balance.GetSwedishKr()}"); var amount = Input.AskForAmount(); if (account.ValidateWithdrawl(account, amount, bank, TransactionType.Withdrawl)) { account.CreateTransaction(account, null, amount, bank, TransactionType.Withdrawl); } else { Output.RedColor("\nTäckning saknas på kontot\n"); } Console.WriteLine($"Saldo efter uttag: {account.Balance.GetSwedishKr()}"); break; } else { Output.RedColor("Kontot existerar inte. Försök igen."); } } PrintStatistics(bank); }
private static void PrintStatistics(Bank bank) { Output.WhiteColor("Statistik"); Console.WriteLine($"Antal kunder: {bank.ListOfCustomers.Count}"); Console.WriteLine($"Antal konton: {bank.ListOfAccounts.Count}"); Console.WriteLine($"Totalt saldo: {bank.ListOfAccounts.Select(x => x.Balance).Sum().GetSwedishKr()}"); Console.WriteLine($"Antal transaktioner: {bank.ListOfTransactions.Count()}"); }
private static void CreateTransfer(Bank bank) { Output.WhiteColor("* Överföring *"); while (true) { Console.Write($"[Från] "); var fromId = Input.AskForAccount(); var fromCheck = Input.CheckForAccountWithAccountId(fromId, bank); if (fromCheck == false) { Output.RedColor("[Från] kontot existerar inte. Försök igen."); continue; } Console.Write("[Till] "); var toId = Input.AskForAccount(); var toCheck = Input.CheckForAccountWithAccountId(toId, bank); if (toCheck) { // if both from account and to account exists var fromAcc = bank.GetSingleAccount(fromId); var toAcc = bank.GetSingleAccount(toId); var amount = Input.AskForAmount(); // Print before change Console.WriteLine($"Saldo på konto ({fromAcc.Id}) innan överföring: {fromAcc.Balance.GetSwedishKr()}"); Console.WriteLine($"Saldo på konto ({toAcc.Id}) innan överföring: {toAcc.Balance.GetSwedishKr()}"); if (fromAcc.ValidateWithdrawl(fromAcc, amount, bank, TransactionType.Transfer)) { fromAcc.CreateTransaction(fromAcc, toAcc, amount, bank, TransactionType.Transfer); } else { Output.RedColor("\nTäckning saknas på kontot\n"); } // Print after change Console.WriteLine($"Saldo på konto ({fromAcc.Id}) efter överföring: {fromAcc.Balance.GetSwedishKr()}"); Console.WriteLine($"Saldo på konto ({toAcc.Id}) efter överföring: {toAcc.Balance.GetSwedishKr()}"); break; } else { Output.RedColor("[Till] kontot existerar inte. Försök igen."); } PrintStatistics(bank); } }
private static void Search(Bank bank) { Output.WhiteColor("* Sök Kund *"); var nameOrCity = Input.AskFor("Namn eller postort"); var result = bank.GetCustomers(nameOrCity); foreach (var item in result) { Console.WriteLine($"{item.Id}: {item.Name}"); } }
private static void AmendCreditLimit(Bank bank) { Output.WhiteColor("* Ändra kreditlimit *"); while (true) { if (AskForAccount(bank, out var id)) { var account = bank.GetSingleAccount(id); account.AmendCreditLimit(account); break; } else { Output.RedColor("Kontot existerar inte. Försök igen."); } } }
private static void AmendCreditInterestRate(Bank bank) { Output.WhiteColor("* Ändra utlåningsränta *"); while (true) { if (AskForAccount(bank, out var id)) { var account = bank.GetSingleAccount(id); // Multiply rate with 100 var procentBefore = account.CreditInterestRate * 100; Console.WriteLine($"Nuvarande utlåningsränta (årsbasis): {procentBefore.GetProcent()}"); var rate = Input.AskForRate(); if (account.validateCreditRate(account, rate)) { account.AmendCreditInterestRate(account, rate); var procentAfter = account.CreditInterestRate * 100; Output.GreenColor($"Ny utlåningsränta: {procentAfter.GetProcent()}"); } else { Output.RedColor("\nUtlåningsräntan kan inte vara mindre än noll.\n"); } //if (account.validateCreditRate()) //{ // account.AmendCreditInterestRate(account); //} //else //{ // Output.RedColor("\nUtlåningsräntan kan inte vara mindre än noll.\n"); //} break; } else { Output.RedColor("Kontot existerar inte. Försök igen."); } } }
private static void PrintTransactions(Bank bank) { Output.WhiteColor("* Sök Transaktioner *"); while (true) { if (AskForAccount(bank, out var id)) { var account = bank.GetSingleAccount(id); bank.PrintTransactionsFor(account); break; } else { Output.RedColor("Kontot existerar inte. Försök igen."); } } }
private static void DeleteAccount(Bank bank) { Output.WhiteColor("* Ta bort konto *"); while (true) { if (AskForAccount(bank, out var id)) { var account = bank.GetSingleAccount(id); bank.DeleteAccount(account); break; } else { Output.RedColor("Kunden existerar inte. Försök igen."); } } PrintStatistics(bank); }
public void QuitAndSave(Bank bank) { var countCustomers = bank.ListOfCustomers.Count; var countAccounts = bank.ListOfAccounts.Count; var sumBalance = bank.ListOfAccounts.Select(x => x.Balance).Sum(); var countTrans = bank.ListOfTransactions.Count; Output.WhiteColor("* Avsluta och spara *"); Console.WriteLine($"Antal kunder: {countCustomers}"); Console.WriteLine($"Antal konton: {countAccounts}"); Console.WriteLine($"Totalt saldo på konton: {sumBalance.GetSwedishKr()}"); Console.WriteLine($"Antal transaktioner: {countTrans}"); // Create files CreateCustomersAndAccountsFile(bank); CreateTransactionsFile(bank); // Close the console Console.ReadLine(); Environment.Exit(0); }
private static void ShowCustomer(Bank bank) { Output.WhiteColor("* Visa kundbild *"); while (true) { var id = Input.AskForAccountIdOrCustomerId(); var check = Input.CheckForCustomerWithCustomerIdOrAccountId(id, bank, out var customerId); if (check) { var customer = bank.GetSingleCustomer(customerId); bank.ShowCustomer(customer); break; } else { Output.RedColor("Kundnumret eller kontot existerar inte. Försök igen."); } } }
private static void AmendInterestRate(Bank bank) { Output.WhiteColor("* Ändra inlåningsränta *"); while (true) { if (AskForAccount(bank, out var id)) { var account = bank.GetSingleAccount(id); // Multiply rate with 100 var procentBefore = account.InterestRate * 100; Console.WriteLine($"Nuvarande inlåningsränta (årsbasis): {procentBefore.GetProcent()}"); // Get new interest rate and update it on the specific account var rate = Input.AskForRate(); if (account.ValidateInterestRate(account, rate)) { account.AmendInterestRate(account, rate); var procentAfter = account.InterestRate * 100; Output.GreenColor($"Ny inlåningsränta: {procentAfter.GetProcent()}"); } else { Output.RedColor("\nInlåningsräntan kan inte vara mindre än noll.\n"); } break; } else { Output.RedColor("Kontot existerar inte. Försök igen."); } } }
private static void DeleteCustomer(Bank bank) { Output.WhiteColor("* Ta bort kund *"); while (true) { var id = Input.AskForCustomer(); var check = Input.CheckForCustomerWithCustomerId(id, bank); if (check) { var customer = bank.GetSingleCustomer(id); bank.DeleteCustomer(customer); break; } else { Output.RedColor("Kunden existerar inte. Försök igen."); } } PrintStatistics(bank); }
private static void AddNewAccount(Bank bank) { Output.WhiteColor("* Lägg till konto *"); while (true) { var id = Input.AskForCustomer(); var check = Input.CheckForCustomerWithCustomerId(id, bank); if (check) { var customer = bank.GetSingleCustomer(id); bank.AddNewAccount(customer); Console.WriteLine($"Nytt kontonummer: {customer.Accounts.Last().Id}"); break; } else { Output.RedColor("Kunden existerar inte. Försök igen."); } } PrintStatistics(bank); }
private static void CreateContribution(Bank bank, Account acc) { Output.WhiteColor("* Insättning *"); while (true) { if (AskForAccount(bank, out var id)) { var account = bank.GetSingleAccount(id); Console.WriteLine($"Saldo innan insättning: {account.Balance.GetSwedishKr()}"); var amount = Input.AskForAmount(); acc.CreateTransaction(null, account, amount, bank, TransactionType.Contribution); Console.WriteLine($"Saldo efter insättning: {account.Balance.GetSwedishKr()}"); break; } else { Output.RedColor("Kontot existerar inte. Försök igen."); } } PrintStatistics(bank); }