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)) } }); }
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) })); }
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)) } }); }
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), })); }