using System; using System.Collections.Generic; using System.Data.SqlTypes; using System.Linq; using System.Linq.Expressions; using InABox.Core; namespace Comal.Classes { public interface IEmployeeActivity { EmployeeLink Employee { get; set; } ActivityLink Activity { get; set; } } public class EmployeeActivityCrossGenerator : AutoEntityCrossGenerator { public override Expression> LeftProperty => x => x.EmployeeLink.ID; public override Expression> LeftMapping => x => x.Employee.ID; public override Expression> LeftLink => x => x.RoleLink.ID; public override Expression> RightProperty => x => x.Activity.ID; public override Expression> RightMapping => x => x.Activity.ID; public override Expression> RightLink => x => x.Role.ID; public override bool Distinct => true; public override Column[] IDColumns => new Column[] { new Column(x => x.Employee.ID), new Column(x => x.Activity.ID) }; } [UserTracking(typeof(Employee))] [AutoEntity(typeof(EmployeeActivityCrossGenerator))] public class EmployeeActivity : Entity, IRemotable, IPersistent, IEmployeeActivity, ILicense { public EmployeeLink Employee { get; set; } public ActivityLink Activity { get; set; } } }