@@ -9,72 +9,80 @@ namespace OrderManagement
9
9
{
10
10
public class Executor : PatternExecutor
11
11
{
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
+
12
20
public override string Name => "Repository - Data Access Pattern" ;
13
21
14
22
public override void Execute ( )
15
23
{
24
+ ConfigureDependencies ( ) ;
16
25
InitializeDatabase ( ) ;
17
26
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
-
25
27
ShowAllCustomers ( ) ;
26
28
ShowAllOrders ( ) ;
27
29
CreateNewOrder ( ) ;
28
30
ShowAllOrders ( ) ;
31
+ }
29
32
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 ) ;
47
39
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 ) ;
53
42
}
54
43
55
44
private void InitializeDatabase ( )
56
45
{
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" } ;
61
51
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 ) ;
64
54
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 } ;
67
57
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
+ }
72
63
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 } ") ;
77
70
}
78
71
}
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
+ }
79
87
}
80
88
}
0 commit comments