public IResult <IInventoryShipmentOrderDetailReturn <IPickOrderDetailReturn <IPickOrderItemReturn>, IPickOrderItemReturn> > GetInterWarehouseOrder(string warehouseOrderKey) { if (warehouseOrderKey == null) { throw new ArgumentNullException("warehouseOrderKey"); } var orderKeyResult = KeyParserHelper.ParseResult <IInventoryShipmentOrderKey>(warehouseOrderKey); if (!orderKeyResult.Success) { return(orderKeyResult.ConvertTo <IInventoryShipmentOrderDetailReturn <IPickOrderDetailReturn <IPickOrderItemReturn>, IPickOrderItemReturn> >()); } var predicate = InventoryShipmentOrderPredicates.ByOrderType(InventoryShipmentOrderTypeEnum.InterWarehouseOrder); predicate = predicate.And(new InventoryShipmentOrderKey(orderKeyResult.ResultingObject).FindByPredicate).ExpandAll(); var select = InventoryShipmentOrderProjectors.SplitSelectInventoryShipmentOrderDetail(_inventoryShipmentOrderUnitOfWork, _timeStamper.CurrentTimeStamp.Date, InventoryOrderEnum.TransWarehouseMovements); var order = _inventoryShipmentOrderUnitOfWork.InventoryShipmentOrderRepository.Filter(predicate).SplitSelect(select).FirstOrDefault(); if (order == null) { return(new InvalidResult <IInventoryShipmentOrderDetailReturn <IPickOrderDetailReturn <IPickOrderItemReturn>, IPickOrderItemReturn> >(null, string.Format(UserMessages.InterWarehouseOrderNotFound, warehouseOrderKey))); } return(new SuccessResult <IInventoryShipmentOrderDetailReturn <IPickOrderDetailReturn <IPickOrderItemReturn>, IPickOrderItemReturn> >(order)); }