Esempio n. 1
0
        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)
                //    }
                //}
            });
        }
        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))
                  } }
            });
        }
Esempio n. 3
0
 public static Expression <Func <SpecialOfferProduct, SpecialOfferProductReturn> > SelectSpecialOfferProduct()
 {
     return(ProductProjectors.SelectProduct().Merge(Projector <SpecialOfferProduct> .To(p => new SpecialOfferProductReturn
     {
         Description = p.SpecialOffer.Description,
         Type = p.SpecialOffer.Type,
         Category = p.SpecialOffer.Category,
         Discount = p.SpecialOffer.DiscountPct
     }), s => s.Product));
 }