public void DepositToAccount() { //Assemble NetcoinRepoRepresentation representation = NetcoinRepositoryUtility.CreateSampleCustomersAndAccounts(5, 0M); //INetcoinRepository fakeProvider = new FakeNetcoinRepository(); _repository.GetAccounts().AddRange(representation.Accounts); BankSystem sut = new BankSystem(_repository); sut.Initialize(); //Act sut.DepositToAccount(2, 100M); //Act & assert Assert.True(_repository.GetAccounts().Single(x => x.AccountId == 2).Balance == 100); sut.WithdrawFromAccount(1, -1M); sut.WithdrawFromAccount(100, 1M); //Assert.Throws<ArgumentOutOfRangeException>(() => sut.WithdrawFromAccount(1, -1M)); //Assert.Throws<NullReferenceException>(() => sut.WithdrawFromAccount(100, 1M)); }
public void HandleMenuSelection(string input) { var accountId = 0; decimal sum = 0; try { switch (input) { case "1": case "sök kund": Console.Write("\nSök efter kund genom att skriva in namn på kund eller postort som kunden bor på: "); var searchString = Console.ReadLine(); var resultListFromSearch = _bankSystem.GetCustomerByNameOrArea(searchString); if (resultListFromSearch.Count != 0) { var counter = 0; foreach (var customer in resultListFromSearch) { counter++; Console.WriteLine($"{counter}. KundID: {customer.CustomerId}, Namn: {customer.Name}, Postort: {customer.Area}"); } } else { Console.WriteLine("Sökning hittade inga resultat."); } break; case "2": case "visa kundbild": Console.Write("\nSkriv in kundnummer för att få kundbild: "); var result = _bankSystem.GetCustomerById(Console.ReadLine()); Console.WriteLine($"Kundnummer: {result.CustomerId}\n" + $"Namn: {result.Name}\n" + $"Organisationsnummer: {result.LegalId}\n" + $"Adress: {result.Address}\n" + $"Postnummer: {result.PostalCode}\n" + $"Område: {result.Area}\n" + $"Stad: {result.City}\n" + $"Land: {result.Country}\n" + $"Telefonnummer: {result.PhoneNumber}\n\n" + $"Konton:\n"); foreach (var account in result.Accounts) { Console.WriteLine($"{account.AccountId}: {account.Balance} kr"); } Console.WriteLine($"\nTotalt saldo: { result.Accounts.Sum(x => x.Balance) } kr"); break; case "3": case "skapa kund": Console.Write("\nFör in uppgifter för att skapa kund: \nNamn: "); var name = Console.ReadLine(); Console.Write("Organisationsnummer: "); var legalId = Console.ReadLine(); Console.Write("Gatuadress: "); var address = Console.ReadLine(); Console.Write("Postnummer: "); var postalCode = Console.ReadLine(); Console.Write("Stad: "); var city = Console.ReadLine(); Console.Write("Område: "); var area = Console.ReadLine(); Console.Write("Land: "); var country = Console.ReadLine(); Console.Write("Telefonnummer: "); var phonenumber = Console.ReadLine(); var isCreatedOrNot = _bankSystem.CreateCustomer(name, legalId, area, address, postalCode, city, country, phonenumber); if (isCreatedOrNot) { Console.Write($"Kund {name}, med organistaionsnummer: {legalId} skapad"); } else { Console.Write("Något gick fel när du skapade kunden. Kontakta support."); } break; case "4": case "ta bort kund": Console.Write("\nSkriv in kundnummer för den du vill radera: "); int customerId = int.Parse(Console.ReadLine()); if (_bankSystem.RemoveCustomer(customerId)) { Console.WriteLine($"Kund med ID { customerId } med tillhörande konton har tagits bort."); } else { Console.WriteLine("Kunden kunde inte tas bort - var god kontrollera kundnummer och att dess konton har 0 i saldo."); } break; case "5": case "skapa konto": Console.Write("\nAnge kundnummer där du vill att nya kontot skapas: "******"Konto skapat."); } else { Console.WriteLine("Något gick fel när konto skulle skapas, kontakta support."); } break; case "6": case "ta bort konto": Console.Write("\nAnge kontonummer för det konto du vill radera: "); var accountRemovedOrNot = _bankSystem.RemoveAccount(int.Parse(Console.ReadLine())); if (accountRemovedOrNot) { Console.WriteLine("Konto raderat."); } else { Console.WriteLine("Konto inte raderat, något gick fel. kontakta support."); } break; case "7": case "insättning": Console.Write("\nUppge summa för insätting:"); sum = decimal.Parse(Console.ReadLine()); Console.Write("Uppge kontonummer som insättningen kommer gå till: "); accountId = int.Parse(Console.ReadLine()); methodResult = _bankSystem.DepositToAccount(accountId, sum); Console.WriteLine(methodResult); break; case "8": case "uttag": Console.Write("\nAnge summa som ska tas ut: "); sum = decimal.Parse(Console.ReadLine()); Console.Write("Uppge vilket kontonummer ska dras från: "); accountId = int.Parse(Console.ReadLine()); methodResult = _bankSystem.WithdrawFromAccount(accountId, sum); Console.WriteLine(methodResult); break; case "9": case "överföring": Console.Write("\nAnge summa för transaktion: "); var sumForTranscation = decimal.Parse(Console.ReadLine()); Console.Write("Uppge kontonummer som ska debiteras: "); var withdrawAccountId = int.Parse(Console.ReadLine()); Console.Write("Uppge kontonummer som ska ta emot summa: "); var depositAccountId = int.Parse(Console.ReadLine()); bool success = _bankSystem.TransferMoneyBetweenAccounts(withdrawAccountId, depositAccountId, sumForTranscation); if (success) { Console.WriteLine($"Skickade {sumForTranscation} från {withdrawAccountId} till {depositAccountId}"); } else { Console.WriteLine("Ett fel uppstod. Vänligen granska kontonummer och belopp"); } break; case "hjälp": ShowMenu(); break; case "rensa": Console.Clear(); break; case "avsluta": isRunning = false; _bankSystem.SaveTextFile(); break; default: Console.WriteLine("Alternativ finns inte. Vänligen skriv \"Hjälp\" för en lista på befintliga alternativ"); break; } } catch (Exception) { Console.WriteLine("Kommando var felaktigt."); } }