private OrderExportDocument Map(OrderImportLocal orderImportLocal) { return new OrderExportDocument() { OrderRef = orderImportLocal.OrderRef, OutletName = orderImportLocal.OutletName, OrderDate = orderImportLocal.OrderDate, OrderDueDate = orderImportLocal.OrderDueDate, TotalDiscount = orderImportLocal.TotalDiscount, TotalGross = orderImportLocal.TotalGross, TotalNet = orderImportLocal.TotalNet, TotalVat = orderImportLocal.TotalVat }; }
public List<Guid> SaveToLocal(OrderExportDocument document, OrderType orderType) { var savedIds = new List<Guid>(); var result = 0; using (var db=new AlidiLocalImportDatabaseContext()) { //Find if the ExternalRef is present in local db so that we can mark it as exported in hq, //So that it is never exported again if (db.OrderImportLocal.Any(p => p.OrderExternalRef == document.ExternalRef)) { var confirmListBypass = new List<Guid>(); confirmListBypass.Add(Guid.NewGuid()); return confirmListBypass; } var orderImport = new OrderImportLocal(); orderImport.OrderExternalRef = document.ExternalRef; orderImport.OrderRef = document.OrderRef; orderImport.OrderType =(int) orderType; orderImport.OutletCode = document.OutletCode; orderImport.OutletName = document.OutletName; orderImport.OrderDate = document.OrderDate; orderImport.OrderDueDate = document.OrderDueDate; orderImport.RouteName = document.RouteName; orderImport.TotalDiscount = document.TotalDiscount; orderImport.TotalGross = document.TotalGross; orderImport.TotalNet = document.TotalNet; orderImport.TotalVat = document.TotalVat; orderImport.ShipToAddress = document.ShipToAddress; orderImport.DateOfImport = DateTime.Now; orderImport.ExportStatus = (int) ExportStatus.New; db.OrderImportLocal.Add(orderImport); db.SaveChanges(); foreach (var item in document.LineItems) { var id = Guid.NewGuid(); var orderItem = new OrderLineItemLocal(); orderItem.LineItemId=id; orderItem.OrderExternalRef = document.ExternalRef; orderItem.LineItemTotalGross = item.LineItemTotalGross; orderItem.LineItemTotalNet = item.LineItemTotalNet; orderItem.LineItemTotalVat = item.LineItemTotalVat; orderItem.Price = item.Price; orderItem.ProductCode = item.ProductCode; orderItem.VatClass = item.VatClass; orderItem.VatPerUnit = item.VatPerUnit; orderItem.DateOfImport = DateTime.Now; orderItem.ExportStatus = (int) ExportStatus.New; db.OrderLineItemLocal.Add(orderItem); savedIds.Add(id); } result = db.SaveChanges(); } if(result>0) { return savedIds; } return null; }