internal static IEnumerable <Expression <Func <InventoryShipmentOrder, InventoryShipmentOrderDetailReturn> > > SplitSelectInventoryShipmentOrderDetail(IInventoryUnitOfWork inventoryUnitOfWork, DateTime currentDate, InventoryOrderEnum inventoryOrder)
        {
            if (inventoryUnitOfWork == null)
            {
                throw new ArgumentNullException("inventoryUnitOfWork");
            }

            var pickOrder = InventoryPickOrderProjectors.SplitSelectDetails();

            return(new Projectors <InventoryShipmentOrder, InventoryShipmentOrderDetailReturn>
            {
                { SplitSelectInventoryShipmentOrderDetailBase(inventoryUnitOfWork, currentDate, inventoryOrder), p => p.Translate().To <InventoryShipmentOrderDetailReturn>() },
                { pickOrder, s => i => new InventoryShipmentOrderDetailReturn
                  {
                      PickOrder = s.Invoke(i.InventoryPickOrder),
                  } }
            });
        }