public void AddAccount(Client client, string accountType, double startMoney) { var id = BankSystem.BaseId; switch (accountType) { case "debit": var newDebitAccount = new DebitAccount(this, startMoney, DebitPercent); Accounts.Add(id, newDebitAccount); BankSystem.Data.Add(id, newDebitAccount); client.AccountId.Add(id); System.IncBaseId(); break; case "deposit": var newDepositAccount = new DepositAccount(this, startMoney, DepositLifespan); Accounts.Add(id, newDepositAccount); BankSystem.Data.Add(id, newDepositAccount); client.AccountId.Add(id); System.IncBaseId(); break; case "credit": var newCreditAccount = new CreditAccount(this, startMoney, CreditTakeoff); Accounts.Add(id, newCreditAccount); BankSystem.Data.Add(id, newCreditAccount); client.AccountId.Add(id); System.IncBaseId(); break; default: throw new UserException("Ошибка! Неизвестный тип счёта."); } }
static void Main() { Builder builder = new ClientBuilder(); Client client = builder.AddName("Sergei").AddSurname("Ivanov").AddPassport(777762).GetClient(); DebitAccount debit = new DebitAccount(client, 3.65, 2000, 365); DebitAccount debit1 = new DebitAccount(client, 3.65, 10000, 365); Console.WriteLine(debit1.GetAmount()); Console.WriteLine(debit.GetAmount()); debit1.DailyInterestAccrual(); debit1.InterestAccrual(); debit.Transfer(10000, debit1); Console.WriteLine(debit1.GetAmount()); Console.WriteLine(debit.GetAmount()); debit1.Withdrawal(10000); Console.WriteLine(debit1.GetAmount()); Console.WriteLine(debit.GetAmount()); debit.TransactionCancellation(0); Console.WriteLine(debit1.GetAmount()); Console.WriteLine(debit.GetAmount()); }