예제 #1
0
        internal static IEnumerable <Expression <Func <Lot, LotHistoryReturn> > > SplitSelectHistory()
        {
            var lotKey     = SelectLotKey <Lot>();
            var product    = SelectDerivedProduct();
            var attributes = LotAttributeProjectors.SelectHistory();
            var history    = LotHistoryProjectors.Select();
            var employee   = EmployeeProjectors.SelectSummary();

            return(new Projectors <Lot, LotHistoryReturn>
            {
                l => new LotHistoryReturn
                {
                    LotKeyReturn = lotKey.Invoke(l),
                    Timestamp = l.TimeStamp,
                    Employee = employee.Invoke(l.Employee),

                    LoBac = new [] { l.ChileLot }.Where(c => c != null).Select(c => c.AllAttributesAreLoBac).DefaultIfEmpty(true).FirstOrDefault(),
                    HoldType = l.Hold,
                    HoldDescription = l.HoldDescription,
                    QualityStatus = l.QualityStatus,
                    ProductionStatus = l.ProductionStatus,
                    Product = product.Invoke(l)
                },
                l => new LotHistoryReturn
                {
                    Attributes = l.Attributes.Select(a => attributes.Invoke(a))
                },
                l => new LotHistoryReturn
                {
                    SerializedHistory = l.History.Select(h => history.Invoke(h))
                }
            });
        }
예제 #2
0
        internal static Expression <Func <LotHistory, LotSerializedHistoryReturn> > Select()
        {
            var employee = EmployeeProjectors.SelectSummary();

            return(Projector <LotHistory> .To(h => new LotSerializedHistoryReturn
            {
                Employee = employee.Invoke(h.Employee),
                Timestamp = h.TimeStamp,
                Serialized = h.Serialized
            }));
        }
        internal static Expression <Func <SampleOrderJournalEntry, SampleOrderJournalEntryReturn> > Select()
        {
            var key  = SelectKey();
            var user = EmployeeProjectors.SelectSummary();

            return(j => new SampleOrderJournalEntryReturn
            {
                Date = j.Date,
                Text = j.Text,
                SampleOrderJournalEntryKeyReturn = key.Invoke(j),
                CreatedByUser = user.Invoke(j.Employee)
            });
        }
        internal static Expression <Func <CustomerNote, CustomerCompanyNoteReturn> > SelectCustomerCompanyNote()
        {
            var key  = SelectKey();
            var user = EmployeeProjectors.SelectSummary();

            return(Projector <CustomerNote> .To(n => new CustomerCompanyNoteReturn
            {
                NoteKeyReturn = key.Invoke(n),
                DisplayBold = n.Bold,
                NoteType = n.Type,
                Text = n.Text,
                TimeStamp = n.TimeStamp,
                CreatedByUser = user.Invoke(n.Employee)
            }));
        }
예제 #5
0
        internal static IEnumerable <Expression <Func <SampleOrder, SampleOrderDetailReturn> > > SelectDetail()
        {
            var key      = SelectKey();
            var company  = CompanyProjectors.SelectHeader();
            var employee = EmployeeProjectors.SelectSummary();
            var item     = SampleOrderItemProjectors.Select();
            var journal  = SampleOrderJournalEntryProjectors.Select();

            return(new Projectors <SampleOrder, SampleOrderDetailReturn>
            {
                s => new SampleOrderDetailReturn
                {
                    DateDue = s.DateDue,
                    DateReceived = s.DateReceived,
                    DateCompleted = s.DateCompleted,
                    Status = s.Status,
                    Active = s.Active,
                    FOB = s.FOB,
                    ShipVia = s.ShipmentMethod,

                    RequestedByShippingLabel = s.Request,
                    ShipToCompany = s.ShipToCompany,
                    ShipToShippingLabel = s.ShipTo,

                    Comments = s.Comments,
                    NotesToPrint = s.PrintNotes,

                    SampleOrderKeyReturn = key.Invoke(s),
                },
                s => new SampleOrderDetailReturn
                {
                    RequestedByCompany = new [] { s.RequestCustomer }.Where(c => c != null).Select(c => company.Invoke(c.Company)).FirstOrDefault(),
                    Broker = new [] { s.Broker }.Where(c => c != null).Select(c => company.Invoke(c)).FirstOrDefault(),
                    CreatedByUser = employee.Invoke(s.Employee),
                },
                s => new SampleOrderDetailReturn
                {
                    Items = s.Items.Select(i => item.Invoke(i))
                },
                s => new SampleOrderDetailReturn
                {
                    JournalEntries = s.JournalEntries.Select(j => journal.Invoke(j))
                }
            });
        }
예제 #6
0
        internal static Expression <Func <SampleOrder, SampleOrderSummaryReturn> > SelectSummary()
        {
            var key      = SelectKey();
            var company  = CompanyProjectors.SelectHeader();
            var employee = EmployeeProjectors.SelectSummary();

            return(Projector <SampleOrder> .To(s => new SampleOrderSummaryReturn
            {
                DateDue = s.DateDue,
                DateReceived = s.DateReceived,
                DateCompleted = s.DateCompleted,
                Status = s.Status,

                RequestedByCompany = new [] { s.RequestCustomer }.Where(c => c != null).Select(c => company.Invoke(c.Company)).FirstOrDefault(),
                Broker = new [] { s.Broker }.Where(c => c != null).Select(c => company.Invoke(c)).FirstOrDefault(),
                CreatedByUser = employee.Invoke(s.Employee),

                SampleOrderKeyReturn = key.Invoke(s),
            }));
        }