| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Linq.Expressions;
 
- using InABox.Clients;
 
- using InABox.Core;
 
- namespace Comal.Classes
 
- {
 
-     
 
-     public enum PaperSize
 
-     {
 
-         A0,
 
-         A1,
 
-         A2,
 
-         A3,
 
-         A4,
 
-         A5,
 
-         Custom,
 
-         NotSet
 
-     }
 
-     public class JobDocumentSet : Entity, IRemotable, IPersistent, IOneToMany<Job>, IJobDocumentSet, ILicense<ProjectManagementLicense>
 
-     {
 
-         [EntityRelationship(DeleteAction.Cascade)]
 
-         [NullEditor]
 
-         public JobLink Job { get; set; }
 
-         [EntityRelationship(DeleteAction.Cascade)]
 
-         [NullEditor]
 
-         public JobDocumentSetFolderLink Folder { get; set; }
 
-         [NullEditor]
 
-         [EntityRelationship(DeleteAction.Cascade)]
 
-         public JobDocumentSetLink Parent { get; set; }
 
-         [CodeEditor(Visible = Visible.Default, Editable = Editable.Enabled)]
 
-         [EditorSequence(1)]
 
-         public string Code { get; set; }
 
-         [TextBoxEditor]
 
-         [EditorSequence(2)]
 
-         public string Description { get; set; }
 
-         [EditorSequence(3)]
 
-         public JobDocumentSetDisciplineLink Discipline { get; set; }
 
-         [EditorSequence(4)]
 
-         public JobDocumentSetTypeLink Type { get; set; }
 
-         [DateTimeEditor]
 
-         [EditorSequence(5)]
 
-         public DateTime Date { get; set; }
 
-         [Caption("Assigned To")]
 
-         [EditorSequence(6)]
 
-         public EmployeeLink Employee { get; set; }
 
-         [EnumLookupEditor(typeof(PaperSize))]
 
-         [EditorSequence("Advanced", 1)]
 
-         public PaperSize Size { get; set; } = PaperSize.NotSet;
 
-         [CodeEditor(Editable = Editable.Enabled)]
 
-         [EditorSequence("Advanced", 2)]
 
-         public string Scale { get; set; } = "";
 
-         [EditorSequence("Advanced", 3)]
 
-         public JobDocumentSetCategoryLink Category { get; set; }
 
-         private class JobITPLookup : LookupDefinitionGenerator<JobITP, JobDocumentSet>
 
-         {
 
-             public override Filter<JobITP> DefineFilter(JobDocumentSet[] items)
 
-             {
 
-                 Guid id = items.FirstOrDefault()?.Job.ID ?? Guid.Empty;
 
-                 return new Filter<JobITP>(x => x.Job.ID).IsEqualTo(id);
 
-             }
 
-             public override Columns<JobDocumentSet> DefineFilterColumns()
 
-                 => Columns.None<JobDocumentSet>().Add(x => x.Job.ID);
 
-         }
 
-         [LookupDefinition(typeof(JobITPLookup))]
 
-         [EditorSequence("Advanced", 4)]
 
-         public JobITPLink Area { get; set; }
 
-         [EditorSequence("Advanced", 5)]
 
-         public DateTime Retired { get; set; }
 
-         [ChildEntity(typeof(JobDocumentSetCurrentMileStone))]
 
-         public LightJobDocumentSetMileStoneLink CurrentMileStone { get; set; }
 
-     }
 
-     public class JobDocumentSetCurrentMileStone : IChildEntityDefinition<JobDocumentSetMileStone>
 
-     {
 
-         public Filter<JobDocumentSetMileStone>? Filter { get; set; } = null;
 
-         public SortOrder<JobDocumentSetMileStone>? Sort { get; set; }
 
-             = new SortOrder<JobDocumentSetMileStone>(x => x.Type.Sequence, SortDirection.Descending).ThenBy(x => x.Created, SortDirection.Descending);
 
-         public Expression<Func<JobDocumentSetMileStone, Guid>> Parent => x => x.DocumentSet.ID;
 
-     }
 
- }
 
 
  |