Example #1
0
        static void Main(string[] args)
        {
            var db = new DomainContext();

            var customer = new Customer("matt", "Matthew", "Smith");

            var savings = customer.RegisterSavingsAccount(500m);
            var loan = customer.RegisterLoanAccount(1000m);

            Console.WriteLine("Savings: {0:c}", savings.Balance);
            Console.WriteLine("Loan: {0:c}", loan.Balance);
            Console.WriteLine("Equity: {0:c}", customer.Equity);

            var savingsDebit = savings.Debit(100m, "$50 Deposit");
            var loanDebit = loan.Debit(100m, "$50 Repayment");
            var savingCredit = savings.Credit(250m, "$50 Withdrawal");

            try
            {
                loan.Credit(10m, "Invalid loan extension attempt");
            }
            catch(BusinessRuleException ex)
            {
                Console.WriteLine(ex.Message);
            }

            db.People.Add(customer);
            db.SaveChanges();
        }