public IResult <IInventoryShipmentOrderPackingListReturn> GetInventoryShipmentOrderPackingList(string orderKey) { var orderKeyResult = KeyParserHelper.ParseResult <IInventoryShipmentOrderKey>(orderKey); if (!orderKeyResult.Success) { return(orderKeyResult.ConvertTo <IInventoryShipmentOrderPackingListReturn>()); } var predicate = orderKeyResult.ResultingObject.ToInventoryShipmentOrderKey().FindByPredicate; var select = InventoryShipmentOrderProjectors.SplitSelectPackingList(); var order = _inventoryShipmentOrderUnitOfWork.InventoryShipmentOrderRepository.Filter(predicate).SplitSelect(select).FirstOrDefault(); if (order == null) { return(new InvalidResult <IInventoryShipmentOrderPackingListReturn>(null, string.Format(UserMessages.InventoryShipmentOrderNotFound, orderKey))); } if (order.OrderType == InventoryShipmentOrderTypeEnum.SalesOrder) { var customerOrderKey = new SalesOrderKey(orderKeyResult.ResultingObject); var customerOrder = _inventoryShipmentOrderUnitOfWork.SalesOrderRepository.FindByKey(customerOrderKey); if (customerOrder == null) { return(new InvalidResult <IInventoryShipmentOrderPackingListReturn>(null, string.Format(UserMessages.SalesOrderNotFound, customerOrder))); } order.ShipFromOrSoldToShippingLabel = customerOrder.SoldTo; } return(new SuccessResult <IInventoryShipmentOrderPackingListReturn>(order)); }