예제 #1
0
        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("Ошибка! Неизвестный тип счёта.");
            }
        }
예제 #2
0
        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());
        }