| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | using System;using InABox.Core;namespace Comal.Classes{    public interface ICustomerActivity    {        CustomerLink Customer { get; set; }        ActivityLink Activity { get; set; }        ActivityCharge Charge { get; set; }    }    [UserTracking(typeof(Customer))]    public class CustomerActivity :        Entity, IPersistent, IRemotable,        ICustomerActivity,        IManyToMany<Customer, Activity>,        IManyToMany<Activity, Customer>,        ILicense<CoreLicense>    {        [EditorSequence(1)]        [EntityRelationship(DeleteAction.Cascade)]        public CustomerLink Customer { get; set; }        [EditorSequence(2)]        [EntityRelationship(DeleteAction.Cascade)]        public ActivityLink Activity { get; set; }                [EditorSequence(3)]        public ActivityCharge Charge { get; set; }    }    public class CustomerActivityUnionGenerator : AutoEntityUnionGenerator<ICustomerActivity>    {        protected override void Configure()        {            AddTable<CustomerActivity>();            AddTable<Assignment>()                .AddConstant(x => x.Customer.ID, Guid.Empty)                .AddConstant(x=>x.Activity.ID, new Column<Activity>(x=>x.ID));        }        public override bool Distinct => false;        public override Column<ICustomerActivity>[] IDColumns => new Column<ICustomerActivity>[]        {            new Column<ICustomerActivity>(x => x.Customer.ID),            new Column<ICustomerActivity>(x => x.Activity.ID)        };    }    [AutoEntity(typeof(CustomerActivityUnionGenerator))]    public class CustomerActivitySummary : Entity, IRemotable, IPersistent, ICustomerActivity, ILicense<CoreLicense>    {        public CustomerLink Customer { get; set; }                public ActivityLink Activity { get; set; }                public ActivityCharge Charge { get; set; }    }}
 |