public static IEnumerable <Expression <Func <WorkOrder, WorkOrderReturn> > > SelectWorkOrder() { var product = ProductProjectors.SelectProductionProduct(); var routings = WorkOrderRoutingProjectors.SelectWorkOrderRouting(); return(new Projectors <WorkOrder, WorkOrderReturn> { w => new WorkOrderReturn { WorkOrderId = w.WorkOrderID, OrderQuantity = w.OrderQty, StockedQuantity = w.StockedQty, StartDate = w.StartDate, EndDate = w.EndDate, DueDate = w.DueDate, ScrapReason = new[] { w.ScrapReason }.Select(r => r.Name).FirstOrDefault() }, { product, p => w => new WorkOrderReturn { Product = p.Invoke(w.Product) } }, { routings, p => w => new WorkOrderReturn { Routings = w.WorkOrderRoutings.Select(r => p.Invoke(r)) } } }); }
public static IEnumerable <Expression <Func <SalesOrderDetail, SalesOrderDetailReturn> > > SplitSelectOrderDetail(AdventureWorksContext context) { var product = ProductProjectors.SelectProductionProduct(); var specialOffer = SpecialOfferProductProjectors.SelectSpecialOfferProduct(); var singularProduct = ProductProjectors.SelectProductionProduct().Merge(); return(new Projectors <SalesOrderDetail, SalesOrderDetailReturn> { d => new SalesOrderDetailReturn { CarrierTrackingNumber = d.CarrierTrackingNumber, Quantity = d.OrderQty, UnitPrice = d.UnitPrice, UnitDiscount = d.UnitPriceDiscount, LineTotal = d.LineTotal, SpecialOfferProduct = specialOffer.Invoke(d.SpecialOfferProduct), Product = singularProduct.Invoke(d.SpecialOfferProduct.Product) }, //{ product, p => d => new SalesOrderDetailReturn // { // Product = p.Invoke(d.SpecialOfferProduct.Product) // } //} }); }