public abstract ERPOrderResponse ImportERPOrder(ERPOrderRequest ERPOrderInfo);
public override ERPOrderResponse ImportERPOrder(ERPOrderRequest ERPOrderInfo) { var uafConnector = new UAFConnector(); ImportERPOrder input = new ImportERPOrder(new Engineering.DAB.AppDAB.AppDAB.DPPOMModel.Types.ERPOrderRequest() { ERPId = ERPOrderInfo.ERPId, FinalMaterialCode = ERPOrderInfo.FinalMaterialCode, FinalMaterialRevision = ERPOrderInfo.FinalMaterialRevision, Orders = new List <ERPOrderPhase> { }, Priority = ERPOrderInfo.Priority, Quantity = ERPOrderInfo.Quantity, Warehouse = ERPOrderInfo.Warehouse }); foreach (var order in ERPOrderInfo.Orders) { if (!string.IsNullOrEmpty(order.CycleTime)) { input.ERPOrderInfo.CycleTime = XmlConvert.ToTimeSpan(order.CycleTime); } if (!string.IsNullOrEmpty(order.SetupTime)) { input.ERPOrderInfo.SetupTime = XmlConvert.ToTimeSpan(order.SetupTime); } DateTime estimatedStart = order.EstimatedStartTime.Year > 1900 ? order.EstimatedStartTime : DateTime.UtcNow.AddMinutes(3); DateTime estimatedEnd = order.EstimatedEndTime.Year > 1900 ? order.EstimatedEndTime : order.EstimatedStartTime.AddMinutes(input.ERPOrderInfo.CycleTime.TotalMinutes * input.ERPOrderInfo.Quantity); input.ERPOrderInfo.EstimatedEndTime = estimatedEnd; input.ERPOrderInfo.EstimatedStartTime = estimatedStart; input.ERPOrderInfo.Operators = order.Operators; var orderPhase = new ERPOrderPhase { Name = order.Name, NextOrder = order.NextOrder, Sequence = order.Sequence, ToBeConsumedMaterials = new List <ERPConsumedMaterial>(), WorkArea = order.WorkArea }; foreach (var mat in order.ToBeConsumedMaterials) { orderPhase.ToBeConsumedMaterials.Add(new ERPConsumedMaterial { MaterialCode = mat.MaterialCode, MaterialRevision = mat.MaterialRevision, Quantity = mat.Quantity, Sequence = mat.Sequence, UoM = mat.UoM }); } input.ERPOrderInfo.Orders.Add(orderPhase); } var response = uafConnector.CallCommand <ImportERPOrder, ImportERPOrder.Response>(input); if (!response.Succeeded) { throw new Exception($"Error {response.Error.ErrorCode}: {response.Error.ErrorMessage}"); } return(new ERPOrderResponse { WorkOrderId = response.WorkOrderIds.First(), WorkOrderNId = ERPOrderInfo.ERPId }); }