| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | using System;using System.Collections.Generic;using System.Linq.Expressions;using InABox.Core;namespace Comal.Classes{    public interface IJobDocumentSetFolder    {        String Name { get; set; }    }        public class JobDocumentSetFolderDocumentCount : CoreAggregate<JobDocumentSetFolder, JobDocumentSet, Guid>    {        public override Expression<Func<JobDocumentSet, Guid>> Aggregate => x => x.ID;        public override AggregateCalculation Calculation => AggregateCalculation.Count;        public override Dictionary<Expression<Func<JobDocumentSet, object>>, Expression<Func<JobDocumentSetFolder, object>>> Links =>            new Dictionary<Expression<Func<JobDocumentSet, object>>, Expression<Func<JobDocumentSetFolder, object>>>()            {                { JobDocumentSet => JobDocumentSet.Folder.ID, JobDocumentSetFolder => JobDocumentSetFolder.ID }            };    }        public class JobDocumentSetFolder : Entity, IRemotable, IPersistent, IJobDocumentSetFolder, IOneToMany<Job>, ILicense<ProjectManagementLicense>    {        [EntityRelationship(DeleteAction.Cascade)]        [NullEditor]        public JobLink Job { get; set; }                [NullEditor]        [EntityRelationship(DeleteAction.Cascade)]        public JobDocumentSetFolderLink Parent { get; set; }        [TextBoxEditor]        [EditorSequence(1)]        public String Name { get; set; }                [NullEditor]        [Aggregate(typeof(JobDocumentSetFolderDocumentCount))]        public int Documents { get; set; }                protected override void Init()        {            base.Init();            Job = new JobLink();            Parent = new JobDocumentSetFolderLink();        }    }    public class JobDocumentSetFolderLink : EntityLink<JobDocumentSetFolder>, IJobDocumentSetFolder    {        [NullEditor]        public override Guid ID { get; set; }                public string Name { get; set; }    }}
 |