| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | using System;using InABox.Core;namespace Comal.Classes{    public abstract class EntityKanban<TEntity, TLink> : Entity, IRemotable, IPersistent, ILicense<TaskManagementLicense>        where TEntity : Entity        where TLink : IEntityLink<TEntity>, new()    {        [EntityRelationship(DeleteAction.Cascade)]        public TLink Entity { get; set; }        [EntityRelationship(DeleteAction.Cascade)]        public KanbanLink Kanban { get; set; }        protected override void Init()        {            base.Init();            Kanban = new KanbanLink();            Entity = new TLink();        }    }    public class RequisitionKanban : EntityKanban<Requisition, RequisitionLink>    {    }    public class SetoutKanban : EntityKanban<Setout, SetoutLink>    {    }    public class DeliveryKanban : EntityKanban<Delivery, DeliveryLink>    {    }    public class PurchaseOrderKanban : EntityKanban<PurchaseOrder, PurchaseOrderLink>    {    }    public class ManufacturingPacketKanban : EntityKanban<ManufacturingPacket, ManufacturingPacketLink>    {     }    public class JobRequisitionKanban : EntityKanban<JobRequisition, JobRequisitionLink>    {     }    [Obsolete("Replaced with EntityKanban", false)]    [UserTracking(typeof(Kanban))]    public class KanbanReference : Entity, IPersistent, IRemotable, ILicense<TaskManagementLicense>    {        [EntityRelationship(DeleteAction.Cascade)]        public KanbanLink Kanban { get; set; }        public Guid KanbanID { get; set; }        public string LinkType { get; set; }        public Guid LinkID { get; set; }        public string LinkProperty { get; set; }        public PackableStringDictionary Data { get; set; }        protected override void Init()        {            base.Init();            Data = new PackableStringDictionary();            Kanban = new KanbanLink();        }    }}
 |