using InABox.Core; using System.Linq; namespace Comal.Classes { public class JobStyle : Entity, IRemotable, IPersistent, ILicense { [EntityRelationship(DeleteAction.Cascade)] [Editable(Editable.Hidden)] public JobLink Job { get; set; } [EntityRelationship(DeleteAction.SetNull)] [EditorSequence(2)] public ProductStyleLink Style { get; set; } [EditorSequence(3)] [MemoEditor] public string Note { get; set; } = ""; private class JobDocumentSetLookup : LookupDefinitionGenerator { public override Filter? DefineFilter(JobStyle[] items) { var ids = items.Select(x => x.Job.ID).Distinct().ToArray(); return ids.Any() ? new Filter(x => x.Job.ID).InList(ids) : new Filter().None(); } public override Columns DefineFilterColumns() { return Columns.None().Add(x => x.ID) .Add(x=>x.Job.ID) .Add(x => x.Job.JobNumber) .Add(x => x.Job.Name); } } [LookupDefinition(typeof(JobDocumentSetLookup))] [EntityRelationship(DeleteAction.SetNull)] public JobDocumentSetLink JobDocumentSet { get; set; } } }