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(); }