Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. public class SendOrderHandler : BaseSendOrderHandler<OrderRequest, OrderResponse>
  2. {
  3.  
  4. ...
  5.  
  6. protected override AxComEdiJournal BuildEdiJournal(OrderRequest order)
  7. {
  8. this.Order = order;
  9.  
  10. var customer = order.Customer;
  11.  
  12. if (customer == null) throw new ArgumentNullException("SendOrder has no customer defined to match a customer in AX.");
  13.  
  14. // Get AX Customer
  15. var axCustomer =
  16. _customerService.GetCustomer(
  17. _mapper.Map<Customer, AxCustComSetup>(customer)
  18. );
  19.  
  20. // Vendor
  21. var vendor = new AxVendor() { AccountNum = "111", Name = "VENDOR" };
  22.  
  23. // Get AX Articles
  24. var articles = _mapper.Map<IEnumerable<OrderLine>, IEnumerable<AxComArticle>>(order.Order.OrderLines);
  25. articles = _articleService.GetArticles(
  26. _mapper.Map(vendor, articles).ToList()
  27. );
  28.  
  29. // Create EDI Journal and return true if succeeded
  30. var ediJournal = _mapper.Map<AxCustomer, AxComEdiJournal>(axCustomer);
  31. _mapper.Map(vendor, ediJournal);
  32. _mapper.Map(order.Order, ediJournal);
  33.  
  34. var ediJournalLines = _mapper.Map<IEnumerable<AxComArticle>,
  35. IEnumerable<AxComEdiJournalLine>>(articles);
  36. ediJournal.Lines = ediJournalLines.ToList();
  37. ediJournal.CreateDate = DateTime.Now;
  38. ediJournal.OrderId = string.Empty;
  39. ediJournal.Remark = string.Empty;
  40.  
  41. return ediJournal;
  42. }
  43. }
  44.  
  45. public class SendOrderHandler : BaseSendOrderHandler<MultiShipmentOrder, OrderResponse>
  46. {
  47.  
  48. ...
  49.  
  50. protected override AxComEdiJournal BuildEdiJournal(MultiShipmentOrder order)
  51. {
  52. var user = order.OrderPartyInformation?.User;
  53.  
  54. if (user == null) throw new ArgumentNullException("MultiShipmentorder has no user defined to match a customer in AX.");
  55.  
  56. // Get AX Customer
  57. var customer =
  58. _customerService.GetCustomer(
  59. _mapper.Map<User, AxCustComSetup>(user)
  60. );
  61.  
  62. // Vendor
  63. var vendor = new AxVendor() { AccountNum = "2222", Name = "VENDOR2" };
  64.  
  65. // Get AX Articles
  66. var articles = _mapper.Map<IEnumerable<MultiShipmentOrderLineItem>, IEnumerable<AxComArticle>>(order.MultiShipmentOrderLineItems);
  67. articles = _articleService.GetArticles(
  68. _mapper.Map(vendor, articles).ToList()
  69. );
  70.  
  71. // Create EDI Journal and return true if succeeded
  72. var ediJournal = _mapper.Map<AxCustomer, AxComEdiJournal>(customer);
  73. _mapper.Map(vendor, ediJournal);
  74. _mapper.Map(order, ediJournal);
  75. var ediJournalLines = _mapper.Map<IEnumerable<AxComArticle>, IEnumerable<AxComEdiJournalLine>>(articles);
  76. ediJournal.Lines = ediJournalLines.ToList();
  77. ediJournal.CreateDate = DateTime.Now;
  78. ediJournal.OrderId = string.Empty;
  79. ediJournal.Remark = string.Empty;
  80.  
  81. return ediJournal;
  82. }
  83. }
  84.  
  85. public abstract class BaseSendOrderHandler<TIn, TOut> : BaseHandler<TOut>, ISendOrderHandler<TIn, TOut>
  86. where TIn : class where TOut : class
  87. {
  88. protected AxComEdiJournal EdiJournal { get; private set; }
  89.  
  90. ...
  91.  
  92. public void Process(TIn order)
  93. {
  94. this.IsValid = false;
  95.  
  96. // Build Edi Journal
  97. this.EdiJournal = BuildEdiJournal(order);
  98.  
  99. // Validate
  100. ...
  101. }
  102.  
  103. protected abstract AxComEdiJournal BuildEdiJournal(TIn order);
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement