using System; using System.Linq; using InABox.Core; namespace Comal.Classes { public class JobDocumentSetLink : EntityLink, IJobDocumentSet { [LookupEditor(typeof(JobDocumentSet))] public override Guid ID { get; set; } [NullEditor] public JobLink Job { get; set; } [NullEditor] public JobDocumentSetFolderLink Folder { get; set; } [CodeEditor(Editable = Editable.Hidden)] [EditorSequence(1)] public string Code { get; set; } [TextBoxEditor(Editable = Editable.Hidden)] [EditorSequence(2)] public string Description { get; set; } public JobDocumentSetDisciplineLink Discipline { get; set; } public JobDocumentSetTypeLink Type { get; set; } public JobDocumentSetCategoryLink Category { get; set; } public JobITPLink Area { get; set; } public LightJobDocumentSetMileStoneLink CurrentMileStone { get; set; } } public class JobDocumentSetLookups : EntityLookup, ILookupDefinition, ILookupDefinition { public override Filter? DefineFilter() { return null; } public override SortOrder DefineSortOrder() { return new SortOrder(x=>x.Code); } public override Columns DefineColumns() { return new Columns(x => x.ID) .Add(x => x.Code) .Add(x => x.Description); } public Filter? DefineFilter(JobProductMapping[] 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(); } Columns ILookupDefinition.DefineFilterColumns() { return new Columns(x => x.ID) .Add(x=>x.Job.ID) .Add(x => x.Job.JobNumber) .Add(x => x.Job.Name); } public 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(); } Columns ILookupDefinition.DefineFilterColumns() { return new Columns(x => x.ID) .Add(x=>x.Job.ID) .Add(x => x.Job.JobNumber) .Add(x => x.Job.Name); } } }