@@ -9,72 +9,80 @@ namespace OrderManagement
99{
1010 public class Executor : PatternExecutor
1111 {
12+ private OrderManagementContext _context ;
13+ private CustomerRepository _customerRepository ;
14+ private OrderRepository _orderRepository ;
15+ private UnitOfWork _unitOfWork ;
16+
17+ private CustomerController _customerController ;
18+ private OrderController _orderController ;
19+
1220 public override string Name => "Repository - Data Access Pattern" ;
1321
1422 public override void Execute ( )
1523 {
24+ ConfigureDependencies ( ) ;
1625 InitializeDatabase ( ) ;
1726
18- using var context = new OrderManagementContext ( ) ;
19- var customerRepository = new CustomerRepository ( context ) ;
20- var orderRepository = new OrderRepository ( context ) ;
21-
22- var customerController = new CustomerController ( customerRepository ) ;
23- var orderController = new OrderController ( orderRepository ) ;
24-
2527 ShowAllCustomers ( ) ;
2628 ShowAllOrders ( ) ;
2729 CreateNewOrder ( ) ;
2830 ShowAllOrders ( ) ;
31+ }
2932
30- void ShowAllCustomers ( )
31- {
32- Console . WriteLine ( "Showing all customers..." ) ;
33- foreach ( var customer in customerController . GetAll ( ) )
34- {
35- Console . WriteLine ( $ "{ customer . FirstName } { customer . LastName } ") ;
36- }
37- }
38-
39- void ShowAllOrders ( )
40- {
41- Console . WriteLine ( "\n Showing all orders..." ) ;
42- foreach ( var order in orderController . GetAll ( ) )
43- {
44- Console . WriteLine ( $ "{ order . Description } with price of { order . Price : C} ") ;
45- }
46- }
33+ private void ConfigureDependencies ( )
34+ {
35+ _context = new OrderManagementContext ( ) ;
36+ _customerRepository = new CustomerRepository ( _context ) ;
37+ _orderRepository = new OrderRepository ( _context ) ;
38+ _unitOfWork = new UnitOfWork ( _context ) ;
4739
48- void CreateNewOrder ( )
49- {
50- Console . WriteLine ( "\n Creating new order..." ) ;
51- orderController . Create ( 3 , "PlayStation 5" , "Address 3" , 600 ) ;
52- }
40+ _customerController = new CustomerController ( _customerRepository ) ;
41+ _orderController = new OrderController ( _orderRepository , _unitOfWork ) ;
5342 }
5443
5544 private void InitializeDatabase ( )
5645 {
57- using ( var context = new OrderManagementContext ( ) )
58- {
59- context . Database . EnsureDeleted ( ) ;
60- context . Database . EnsureCreated ( ) ;
46+ _context . Database . EnsureDeleted ( ) ;
47+ _context . Database . EnsureCreated ( ) ;
48+
49+ var emma = new Customer { Id = 1 , FirstName = "Emma" , LastName = "Johnson" } ;
50+ var marc = new Customer { Id = 2 , FirstName = "Marc" , LastName = "Milston" } ;
6151
62- var emma = new Customer { Id = 1 , FirstName = "Emma" , LastName = "Johnson" } ;
63- var marc = new Customer { Id = 2 , FirstName = "Marc" , LastName = "Milston" } ;
52+ _customerRepository . Add ( emma ) ;
53+ _customerRepository . Add ( marc ) ;
6454
65- var camera = new Order { Id = 1 , Description = "Camera" , DeliveryAddress = "Address 1" , Price = 550 } ;
66- var wallet = new Order { Id = 2 , Description = "Wallet" , DeliveryAddress = "Address 2" , Price = 10 } ;
55+ var camera = new Order { Id = 1 , Description = "Camera" , DeliveryAddress = "Address 1" , Price = 550 } ;
56+ var wallet = new Order { Id = 2 , Description = "Wallet" , DeliveryAddress = "Address 2" , Price = 10 } ;
6757
68- var customerRepository = new CustomerRepository ( context ) ;
69- customerRepository . Add ( emma ) ;
70- customerRepository . Add ( marc ) ;
71- customerRepository . SaveChanges ( ) ;
58+ _orderRepository . Add ( camera ) ;
59+ _orderRepository . Add ( wallet ) ;
60+
61+ _unitOfWork . Commit ( ) ;
62+ }
7263
73- var orderRepository = new OrderRepository ( context ) ;
74- orderRepository . Add ( camera ) ;
75- orderRepository . Add ( wallet ) ;
76- orderRepository . SaveChanges ( ) ;
64+ private void ShowAllCustomers ( )
65+ {
66+ Console . WriteLine ( "Showing all customers..." ) ;
67+ foreach ( var customer in _customerController . GetAll ( ) )
68+ {
69+ Console . WriteLine ( $ "{ customer . FirstName } { customer . LastName } ") ;
7770 }
7871 }
72+
73+ private void ShowAllOrders ( )
74+ {
75+ Console . WriteLine ( "\n Showing all orders..." ) ;
76+ foreach ( var order in _orderController . GetAll ( ) )
77+ {
78+ Console . WriteLine ( $ "{ order . Description } with price of { order . Price : C} ") ;
79+ }
80+ }
81+
82+ private void CreateNewOrder ( )
83+ {
84+ Console . WriteLine ( "\n Creating new order..." ) ;
85+ _orderController . Create ( 3 , "PlayStation 5" , "Address 3" , 600 ) ;
86+ }
7987 }
8088}
0 commit comments