예제 #1
0
        internal static Expression <Func <TreatmentOrder, TreatmentOrderSummaryReturn> > SelectSummary()
        {
            var treatment = InventoryTreatmentProjectors.SelectInventoryTreatment();

            return(InventoryShipmentOrderProjectors.SelectInventoryShipmentOrderSummary().Merge(Projector <TreatmentOrder> .To(t => new TreatmentOrderSummaryReturn
            {
                Returned = t.Returned,
                InventoryTreatment = treatment.Invoke(t.Treatment)
            }), t => t.InventoryShipmentOrder));
        }
        internal static IEnumerable <Expression <Func <SalesOrder, SalesOrderSummaryReturn> > > SplitSelectSummary()
        {
            var company = CompanyProjectors.SelectSummary();

            return(new Projectors <SalesOrder, SalesOrderSummaryReturn>
            {
                InventoryShipmentOrderProjectors.SelectInventoryShipmentOrderSummary().Translate().To <SalesOrder, SalesOrderSummaryReturn>(c => c.InventoryShipmentOrder),
                c => new SalesOrderSummaryReturn
                {
                    SalesOrderStatus = c.OrderStatus,
                    PaymentTerms = c.PaymentTerms,
                    DateOrderReceived = c.InventoryShipmentOrder.DateReceived,
                    InvoiceDate = c.InvoiceDate,
                    CreditMemo = c.CreditMemo,
                    Customer = new[] { c.Customer }.Where(u => u != null).Select(u => company.Invoke(u.Company)).FirstOrDefault(),
                    Broker = new[] { c.Broker }.Where(b => b != null).Select(b => company.Invoke(b)).FirstOrDefault()
                }
            });
        }