| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | using System;using System.Threading;using InABox.Core;namespace Comal.Classes{        public class LeaveCalendarGenerator : AutoEntityUnionGenerator<IEmployeeLeaveRequest>    {        protected override void Configure()        {            AddTable<EmployeeStandardLeave>();            AddTable<LeaveRequest>();        }        public override bool Distinct => false;        public override Column<IEmployeeLeaveRequest>[] IDColumns => new Column<IEmployeeLeaveRequest>[]        {            new Column<IEmployeeLeaveRequest>(x => x.EmployeeLink.ID),            new Column<IEmployeeLeaveRequest>(x => x.StandardLeave.ID)        };    }        [AutoEntity(typeof(LeaveCalendarGenerator))]    public class LeaveCalendar : Entity, IRemotable, IPersistent, IEmployeeLeaveRequest    {        public EmployeeLink EmployeeLink { get; set; }        public LeaveRequestActivityLink LeaveType { get; set; }        public DateTime From { get; set; }        public TimeSpan FromTime { get; set; }        public DateTime To { get; set; }        public TimeSpan ToTime { get; set; }        public DateTime Approved { get; set; }        public LeaveRequestStatus Status { get; set; }        public StandardLeaveLink StandardLeave { get; set; }        protected override void Init()        {            base.Init();            EmployeeLink = new EmployeeLink();            LeaveType = new LeaveRequestActivityLink();            StandardLeave = new StandardLeaveLink();        }    }}
 |