| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | using System;using System.Linq;using InABox.Core;namespace Comal.Classes{    [UserTracking(typeof(ManufacturingPacket))]    public class Setout : Entity, IPersistent, IRemotable, ILicense<ManufacturingLicense>    {        [EntityRelationship(DeleteAction.Cascade)]        public JobLink JobLink { get; set; }        [UniqueCodeEditor(Visible = Visible.Default, Editable = Editable.Enabled)]        public string Number { get; set; }        [Obsolete("Supreceded by ManufacturingPacket.Serial")]        public string Reference { get; set; }        [MemoEditor]        public string Description { get; set; }        [Obsolete("Superceded by ManufacturingPacket.Location")]        public string Location { get; set; }        public DateTime DueDate { get; set; }        //[NullEditor]        //public PackableList<FactoryTemplateItem> Items { get; set; }        //[NullEditor]        //public PackableList<ManufacturingItem> Manufacturing { get; set; }        private class JobStageLookup : LookupDefinitionGenerator<JobStage, Setout>        {            public override Filter<JobStage> DefineFilter(Setout[] items)            {                if (items.Length == 1)                    return new Filter<JobStage>(x => x.Job.ID).IsEqualTo(items.First().JobLink.ID).And(x => x.IsHeader).IsEqualTo(false);                return new Filter<JobStage>(x => x.ID).IsEqualTo(Guid.Empty);            }            public override Columns<Setout> DefineFilterColumns()                => Columns.None<Setout>().Add(x => x.JobLink.ID);        }        [LookupDefinition(typeof(JobStageLookup))]        public JobStageLink JobStage { get; set; }        public SetoutGroupLink Group { get; set; }        public override string ToString()        {            return string.Format("{0}: {1}", Number, Reference);        }    }}
 |