1. 程式人生 > >.NET應用架構設計—工作單元模式(擺脫過程式程式碼的重要思想,代替DDD實現輕量級業務)

.NET應用架構設計—工作單元模式(擺脫過程式程式碼的重要思想,代替DDD實現輕量級業務)

 1 namespace OrderManager
 2 {
 3     using OrderManager.Business;
 4     using OrderManager.DataSource; 
 5 
 6     public class OrderManagerController : ControllerBase
 7     {
 8         public bool AddOrder(Order order)
 9         {
10             using (UnitOfWork unitOfWork = new UnitOfWork())
11 { 12 order.CheckOrder();//執行業務檢查 13 14 order.Products.ForEach(item => 15 { 16 item.CheckProducts();//執行每個活動記錄物件的業務檢查,這裡也可以使用表模組來處理。 17 }); 18 19 OrderGateway orderGateway = new
OrderGateway(unitOfWork); 20 var orderDbResult = orderGateway.AddOrder(order);//第一個資料庫表操作 21 22 OrderProductsGateway productGateway = new OrderProductsGateway(unitOfWork); 23 var productDbResult = productGateway.AddOrderProducts(order.Products);//第二個資料庫表操作
24 25 if (orderDbResult && productDbResult) 26 { 27 if (unitOfWork.Commit()) 28 { 29 this.SendOrderIntegrationMssage(order);//傳送成功整合訂單訊息 30 31 return true; 32 } 33 34 this.PushOrderProcessQueue(order);//將本次訂單傳送到處理佇列中 35 return false; 36 } 37 38 this.LogBusinessException(order);//記錄一個業務處理異常LOG,以備排查問題。 39 return false; 40 } 41 } 42 } 43 }