public static IEnumerable <Expression <Func <Product, ProductionProductReturn> > > SelectProductionProduct()
        {
            var bom       = BillOfMaterialsProjectors.SelectBillOfMaterial();
            var inventory = ProductInventoryProjectors.SelectProductInventory();

            return(new Projectors <Product, ProductionProductReturn>
            {
                p => new ProductionProductReturn
                {
                    Name = p.Name,
                    ProductNumber = p.ProductNumber,
                    ProductLine = p.ProductLine,
                    Class = p.Class,
                    Style = p.Style,
                    SubCategory = p.ProductSubcategory.Name
                },
                //p => new ProductionProductReturn
                //    {
                //    }
                //{ bom, p => r => new ProductionProductReturn
                //    {
                //        BillOfMaterials = r.BillOfMaterials.Select(m => p.Invoke(m))
                //    }
                //},
                //{ inventory, p => r => new ProductionProductReturn
                //    {
                //        Inventory = r.ProductInventories.Select(i => p.Invoke(i))
                //    }
                //}
            });
        }
        public static IEnumerable <Expression <Func <WorkOrderRouting, WorkOrderRoutingReturn> > > SelectWorkOrderRouting()
        {
            var inventory = ProductInventoryProjectors.SelectProductInventory();

            return(new Projectors <WorkOrderRouting, WorkOrderRoutingReturn>
            {
                r => new WorkOrderRoutingReturn
                {
                    Location = r.Location.Name,
                },
                { inventory, p => r => new WorkOrderRoutingReturn
                  {
                      Inventory = r.Location.ProductInventories.Select(i => p.Invoke(i))
                  } }
            });
        }