// Seed the program with some sample data. // For a real application, the customer would be created from // another form and start with zero balances. private static Customer createCustomer() { Customer customer = new Customer(); customer.FirstName = "Freida"; customer.LastName = "Franklin"; decimal savingsAccountBalance = 2000m; SavingsAccount savingsAccount = new SavingsAccount(savingsAccountBalance); customer.AddBankAccount(savingsAccount); decimal creditLimit = 10000m; decimal creditLimitBalance = -3456m; CreditLine creditLineAccount = new CreditLine(creditLimit, creditLimitBalance); customer.AddBankAccount(creditLineAccount); decimal savingsAccountBalance2 = 3502m; SavingsAccount savingsAccount2 = new SavingsAccount(savingsAccountBalance2); customer.AddBankAccount(savingsAccount2); return(customer); }
public static void AddAlibabaDefaultBankAccount(this Customer customer, ISortCodeChecker sortCodeChecker = null) { const string bankAccount = "00000000"; const string sortCode = "000000"; const BankAccountType accountType = BankAccountType.Personal; if (customer == null) { ms_oLog.Debug("Customer not specified for adding an Alibaba default bank account (#{0}, code {1}, type {2}).", bankAccount, sortCode, accountType ); return; } // if if (customer.IsAlibaba) { customer.AddBankAccount("00000000", "000000", BankAccountType.Personal); return; } // if ms_oLog.Debug( "Not adding an Alibaba default bank account (#{1}, code {2}, type {3}) to customer {0} because this is not an Alibaba customer.", customer.Stringify(), bankAccount, sortCode, accountType ); } // AddAlibabaDefaultBankAccount
public void AddNewBankAccountToCustomer() { ICustomer customer1 = new Customer(1, "Name", "Address", "Phone", "Email"); ICustomer customer2 = new Customer(2, "Name", "Address", "Phone", "Email"); IBankAccount account1 = BankAccount.CreateBankAccount(customer1, 1); IBankAccount account2 = BankAccount.CreateBankAccount(customer2, 2); customer1.AddBankAccount(account2); Assert.AreEqual(2, customer1.BankAccounts.Count); Assert.AreSame(account1, customer1.BankAccounts[0]); Assert.AreSame(account2, customer1.BankAccounts[1]); }
public void AddExistingBankAccountToCustomerExpectArgumentException() { ICustomer customer = new Customer(1, "Name", "Address", "Phone", "Email"); int accNumber = 1; double initialBalance = 123.45; IBankAccount account = BankAccount.CreateBankAccount(customer, accNumber, initialBalance); Assert.AreEqual(1, customer.BankAccounts.Count); Assert.AreSame(account, customer.BankAccounts[0]); try { customer.AddBankAccount(account); Assert.Fail("Added alrady existing bank account to customer"); } catch (ArgumentException) { Assert.AreEqual(1, customer.BankAccounts.Count); Assert.AreSame(account, customer.BankAccounts[0]); } }
static void Main(string[] args) { #region "Exercise 4.1" Console.WriteLine("----- Exercise 4.1 -----"); Console.WriteLine(); #region "Initializing objects" Console.WriteLine("----- Class pet -----"); Console.WriteLine(); Console.WriteLine("----- Initialize pets -----"); Console.WriteLine(); const int AMOUNT1 = 10; List <Pet> pets = new List <Pet>(); for (int i = 0; i < AMOUNT1; i++) { pets.Add(Cat.MakeRandomPet()); pets.Add(Dog.MakeRandomPet()); } foreach (Pet pet in pets) { Console.WriteLine(pet); } #endregion "Initializing objects" #region "Test methods" Console.WriteLine("----- Testing of pet methods -----"); Console.WriteLine(); Console.WriteLine("----- Make noise -----"); Console.WriteLine(); foreach (Pet pet in pets) { Console.WriteLine(pet.MakeNoise()); Console.WriteLine(); } #endregion "Test methods" #endregion "Exercise 4.1" #region "Exercise 4.2" Console.WriteLine("----- Exercise 4.2 -----"); Console.WriteLine(); #region "Initializing objects" Console.WriteLine("----- Class car -----"); Console.WriteLine(); Console.WriteLine("----- Initialize sportscars -----"); Console.WriteLine(); const int AMOUNT2 = 10; List <Car> cars = new List <Car>(); for (int i = 0; i < AMOUNT2; i++) { cars.Add(SportsCar.MakeRandomCar()); cars.Add(FamilyCar.MakeRandomCar()); } foreach (Car car in cars) { Console.WriteLine(car); } #endregion "Initializing objects" #region "Test methods" Console.WriteLine("----- Testing of car methods -----"); Console.WriteLine(); Console.WriteLine("----- Testing fuel consumption -----"); Console.WriteLine(); foreach (Car car in cars) { Console.WriteLine(car.CalculateFuelConsumption()); Console.WriteLine(); } Console.WriteLine("----- Testing kilometer count -----"); Console.WriteLine(); foreach (Car car in cars) { Console.WriteLine(car.CalculateKilometers()); Console.WriteLine(); } #endregion "Test methods" #endregion "Oef 4.2" #region "Exercise 4.3" Console.WriteLine("----- Exercise 4.3 -----"); Console.WriteLine(); #region "Initalizing objects" Console.WriteLine("----- Class Product -----"); Console.WriteLine(); Console.WriteLine("----- Initializing products -----"); Console.WriteLine(); const int AMOUNT3 = 10; List <Product> products = new List <Product>(); for (int i = 0; i < AMOUNT3; i++) { products.Add(FoodProduct.MakeRandomProduct()); products.Add(NonFoodProduct.MakeRandomProduct()); } foreach (Product product in products) { Console.WriteLine(product); } Console.WriteLine("----- Class Store -----"); Console.WriteLine(); Console.WriteLine("----- Initializing store -----"); Console.WriteLine(); Store store = new Store(); #endregion "Initalizing objects" #region "Testing methods" Console.WriteLine("----- Testing of store methods -----"); Console.WriteLine(); Console.WriteLine("----- Adding products -----"); Console.WriteLine(); foreach (Product product in products) { store.AddProduct(product); } Console.WriteLine(store); Console.WriteLine("----- Finding a product -----"); Console.WriteLine(); //List to contain the names of all the products List <string> names = new List <string>(); foreach (Product product in products) { names.Add(product.GetProductName()); } Product product1 = store.FindProduct(names[0]); Console.WriteLine($"Product 1: \n{product1}"); Console.WriteLine("----- Removing the product -----"); Console.WriteLine(); store.RemoveProduct(product1); Console.WriteLine(store); #endregion "Testing methods" #endregion "Exercise 4.3" #region "Exercise 4.4" Console.WriteLine("----- Exercise 4.4 -----"); Console.WriteLine(); #region "Initalizing objects" Console.WriteLine("----- Class Person -----"); Console.WriteLine(); Console.WriteLine("----- Initializing people -----"); Console.WriteLine(); const int AMOUNT4 = 10; List <Attendee> attendees = new List <Attendee>(); List <Artist> artists = new List <Artist>(); for (int i = 0; i < AMOUNT4; i++) { attendees.Add(Attendee.MakeRandomPerson()); artists.Add(Artist.MakeRandomPerson()); } foreach (Person artist in artists) { Console.WriteLine(artist); Console.WriteLine(); } foreach (Person attendee in attendees) { Console.WriteLine(attendee); Console.WriteLine(); } Console.WriteLine("----- Class Festival -----"); Console.WriteLine(); Console.WriteLine("----- Initializing festival -----"); Console.WriteLine(); Festival festival = new Festival(); #endregion "Initalizing objects" #region "Testing methods" Console.WriteLine("----- Testing of festival methods -----"); Console.WriteLine(); Console.WriteLine("----- Adding artists -----"); Console.WriteLine(); foreach (Artist artist in artists) { festival.AddArtist(artist); } Console.WriteLine(festival); Console.WriteLine("----- Finding an artist -----"); Console.WriteLine(); //List to contain the names of all the products Artist artist1 = festival.FindArtist(artists[0].FirstName, artists[0].LastName); Console.WriteLine($"Artist 1: \n{artist1}"); Console.WriteLine("----- Removing the artist -----"); Console.WriteLine(); festival.RemoveArtist(artist1); Console.WriteLine(festival); Console.WriteLine("----- Adding attendees -----"); Console.WriteLine(); foreach (Attendee attendee in attendees) { festival.AddAttendee(attendee); } Console.WriteLine(festival); Console.WriteLine("----- Calculating income prices -----"); Console.WriteLine(); decimal incomePrice = 50; Console.WriteLine($"Standard price: {incomePrice}"); foreach (Attendee attendee in attendees) { Console.WriteLine("-----"); Console.WriteLine(attendee); Console.WriteLine($"Income price: {festival.CalculateIncomePrice(incomePrice, attendee)}"); Console.WriteLine("-----"); Console.WriteLine(); } Console.WriteLine("----- Finding an attendee -----"); Console.WriteLine(); //List to contain the names of all the products Attendee attendee1 = festival.FindAttendee(attendees[0].FirstName, attendees[0].LastName); Console.WriteLine($"Attendee 1: \n{attendee1}"); Console.WriteLine("----- Removing the attendee -----"); Console.WriteLine(); festival.RemoveAttendee(attendee1); Console.WriteLine(festival); #endregion "Testing methods" #endregion "Exercise 4.4" #region "Exercise 4.5" Console.WriteLine("----- Exercise 4.5 -----"); Console.WriteLine(); #region "Initializing objects" Console.WriteLine("----- Class Customer -----"); Console.WriteLine(); Console.WriteLine("----- Initializing customers -----"); Console.WriteLine(); const int AMOUNT5 = 10; List <Customer> customers = new List <Customer>(); //Creating the customers for (int i = 0; i < AMOUNT5; i++) { customers.Add(Customer.MakeRandomCustomer()); } const int AMOUNTOFACCOUNTS = 4; int randomNumber = generator.Next(0, 2); //adding bankaccounts to the customers foreach (Customer customer in customers) { for (int j = 0; j < AMOUNTOFACCOUNTS; j++) { //to randomize what account is added //adds a savingsaccount if (randomNumber <= 0) { customer.AddBankAccount(SavingsAccount.MakeRandomAccount()); } //adds an investementaccount else if (randomNumber > 0) { customer.AddBankAccount(InvestmentAccount.MakeRandomAccount()); } } } const int AMOUNTOFTRANSACTIONS = 6; foreach (Customer customer in customers) { foreach (BankAccount bankAccount in customer.BankAccounts) { int randomYear = generator.Next(DateTime.Today.Year - 80, DateTime.Today.Year + 1); int randomMonth = generator.Next(1, 13); int randomDay = generator.Next(1, DateTime.DaysInMonth(randomYear, randomMonth) + 1); DateTime randomDate = new DateTime(randomYear, randomMonth, randomDay); decimal randomValue = (decimal)generator.Next(100, 100000) / 100; for (int k = 0; k < AMOUNTOFTRANSACTIONS; k++) { if (bankAccount.GetType() == typeof(SavingsAccount)) { bankAccount.DepositMoney(randomValue, randomDate); } else if (bankAccount.GetType() == typeof(InvestmentAccount)) { if (randomNumber <= 0) { bankAccount.DepositMoney(randomValue, randomDate); } else if (randomNumber > 0) { TimeSpan randomPeriod = new TimeSpan(generator.Next(30, 1826), 0, 0, 0); ((InvestmentAccount)bankAccount).InvestMoney(randomValue, randomPeriod, randomDate); } } } } } foreach (Customer customer in customers) { Console.WriteLine(customer); } Console.WriteLine("----- Class Bank -----"); Console.WriteLine(); Console.WriteLine("----- Initializing bank -----"); Console.WriteLine(); Bank bank = new Bank("A bank", Address.MakeRandomAddress()); Console.WriteLine(bank); #endregion "Initializing objects" #region "Testing methods" Console.WriteLine("----- Testing methods -----"); Console.WriteLine(); Console.WriteLine("----- Adding customers -----"); Console.WriteLine(); foreach (Customer customer in customers) { bank.AddCustomer(customer); } Console.WriteLine(bank); Console.WriteLine("----- Listing customers -----"); Console.WriteLine(); Console.WriteLine(bank.ListCustomers()); Console.WriteLine("----- Finding a customer -----"); Console.WriteLine(); Customer customer1 = bank.FindCustomer(1); Console.WriteLine(customer1); Console.WriteLine("----- Removing a customer -----"); Console.WriteLine(); bank.RemoveCustomer(customer1); Console.WriteLine(bank); Console.WriteLine("----- Adding a customer -----"); Console.WriteLine(); bank.AddCustomer(customer1); Console.WriteLine(bank); Console.WriteLine("----- Listing all bankaccounts of customer 1-----"); Console.WriteLine(); Console.WriteLine(customer1.ListBankAccounts()); Console.WriteLine(); Console.WriteLine("----- Finding a bankaccount -----"); Console.WriteLine(); BankAccount bankAccount1 = customer1.FindBankAccount(1); Console.WriteLine(bankAccount1); Console.WriteLine("----- Removing a bankaccount -----"); Console.WriteLine(); customer1.RemoveBankAccount(bankAccount1); Console.WriteLine(customer1); Console.WriteLine("----- Adding a bankaccount -----"); Console.WriteLine(); customer1.AddBankAccount(bankAccount1); Console.WriteLine(customer1); Console.WriteLine("----- Listing all transactions of bankaccount 1 -----"); Console.WriteLine(); Console.WriteLine(bankAccount1.ListTransactions()); Console.WriteLine("----- Finding a transaction -----"); Console.WriteLine(); Transaction transaction1 = bankAccount1.FindTransaction(1); Console.WriteLine(transaction1); Console.WriteLine("----- Removing a transaction -----"); Console.WriteLine(); bankAccount1.RemoveTransaction(transaction1); Console.WriteLine(bankAccount1); Console.WriteLine("----- Adding a transaction -----"); Console.WriteLine(); bankAccount1.AddTransaction(transaction1); Console.WriteLine(bankAccount1); Console.WriteLine("----- Making a savings account -----"); Console.WriteLine(); SavingsAccount savingsAccount = SavingsAccount.MakeRandomAccount(); Console.WriteLine(savingsAccount); Console.WriteLine("----- Depositing money to the account -----"); Console.WriteLine(); int AMOUNTOFDEPOSITS1 = 10; for (int i = 0; i < AMOUNTOFDEPOSITS1; i++) { int randomYear = generator.Next(DateTime.Today.Year - 80, DateTime.Today.Year + 1); int randomMonth = generator.Next(1, 13); int randomDay = generator.Next(1, DateTime.DaysInMonth(randomYear, randomMonth) + 1); DateTime randomDate = new DateTime(randomYear, randomMonth, randomDay); decimal randomValue = (decimal)generator.Next(100, 100000) / 100; savingsAccount.DepositMoney(randomValue, randomDate); } Console.WriteLine(savingsAccount.ListTransactions()); Console.WriteLine(); Console.WriteLine($"Account balance: \u20AC {savingsAccount.CalculateAccountBalance():N}"); Console.WriteLine(); Console.WriteLine("----- Withrawing money from account -----"); Console.WriteLine(); int AMOUNTOFWITHDRAWALS1 = 10; try { for (int i = 0; i < AMOUNTOFWITHDRAWALS1; i++) { int randomYear = generator.Next(DateTime.Today.Year - 80, DateTime.Today.Year + 1); int randomMonth = generator.Next(1, 13); int randomDay = generator.Next(1, DateTime.DaysInMonth(randomYear, randomMonth) + 1); DateTime randomDate = new DateTime(randomYear, randomMonth, randomDay); decimal randomValue = (decimal)generator.Next(10, 10000) / 100; savingsAccount.WithdrawMoney(randomValue, randomDate); } } catch (Exception) { Console.WriteLine("Insufficient funds"); } Console.WriteLine(savingsAccount.ListTransactions()); Console.WriteLine(); Console.WriteLine($"Account balance: \u20AC {savingsAccount.CalculateAccountBalance():N}"); Console.WriteLine(); Console.WriteLine("----- Making an investement account -----"); Console.WriteLine(); InvestmentAccount investmentAccount = InvestmentAccount.MakeRandomAccount(); Console.WriteLine(investmentAccount); Console.WriteLine("----- Depositing money into the account -----"); Console.WriteLine(); int AMOUNTOFDEPOSITS2 = 5; for (int i = 0; i < AMOUNTOFDEPOSITS2; i++) { int randomYear = generator.Next(DateTime.Today.Year - 80, DateTime.Today.Year + 1); int randomMonth = generator.Next(1, 13); int randomDay = generator.Next(1, DateTime.DaysInMonth(randomYear, randomMonth) + 1); DateTime randomDate = new DateTime(randomYear, randomMonth, randomDay); decimal randomValue = (decimal)generator.Next(100, 100000) / 100; investmentAccount.DepositMoney(randomValue, randomDate); } Console.WriteLine(investmentAccount.ListTransactions()); Console.WriteLine(); Console.WriteLine($"Account balance: \u20AC {investmentAccount.CalculateAccountBalance():N}"); Console.WriteLine(); Console.WriteLine("----- Investing money into the account -----"); Console.WriteLine(); int AMOUNTOFINVESTEMENTS = 5; for (int i = 0; i < AMOUNTOFINVESTEMENTS; i++) { int randomYear = generator.Next(DateTime.Today.Year - 80, DateTime.Today.Year + 1); int randomMonth = generator.Next(1, 13); int randomDay = generator.Next(1, DateTime.DaysInMonth(randomYear, randomMonth) + 1); DateTime randomDate = new DateTime(randomYear, randomMonth, randomDay); decimal randomValue = (decimal)generator.Next(100, 100000) / 100; TimeSpan randomPeriod = new TimeSpan(generator.Next(30, 1826), 0, 0, 0); investmentAccount.InvestMoney(randomValue, randomPeriod, randomDate); } Console.WriteLine(investmentAccount.ListTransactions()); Console.WriteLine(); Console.WriteLine($"Account balance: \u20AC {investmentAccount.CalculateAccountBalance():N}"); Console.WriteLine(); #endregion "Testing methods" #endregion "Exercise 4.5" }