コード例 #1
0
        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));
        }
コード例 #2
0
        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.");
            }
        }