LeaveCalendar.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using System.Threading;
  3. using InABox.Core;
  4. namespace Comal.Classes
  5. {
  6. public class LeaveCalendarGenerator : AutoEntityUnionGenerator<IEmployeeLeaveRequest>
  7. {
  8. protected override void Configure()
  9. {
  10. AddTable<EmployeeStandardLeave>();
  11. AddTable<LeaveRequest>();
  12. }
  13. public override bool Distinct => false;
  14. public override Column<IEmployeeLeaveRequest>[] IDColumns => new Column<IEmployeeLeaveRequest>[]
  15. {
  16. new Column<IEmployeeLeaveRequest>(x => x.EmployeeLink.ID),
  17. new Column<IEmployeeLeaveRequest>(x => x.StandardLeave.ID)
  18. };
  19. }
  20. [AutoEntity(typeof(LeaveCalendarGenerator))]
  21. public class LeaveCalendar : Entity, IRemotable, IPersistent, IEmployeeLeaveRequest
  22. {
  23. public EmployeeLink EmployeeLink { get; set; }
  24. public LeaveRequestActivityLink LeaveType { get; set; }
  25. public DateTime From { get; set; }
  26. public TimeSpan FromTime { get; set; }
  27. public DateTime To { get; set; }
  28. public TimeSpan ToTime { get; set; }
  29. public DateTime Approved { get; set; }
  30. public LeaveRequestStatus Status { get; set; }
  31. public StandardLeaveLink StandardLeave { get; set; }
  32. protected override void Init()
  33. {
  34. base.Init();
  35. EmployeeLink = new EmployeeLink();
  36. LeaveType = new LeaveRequestActivityLink();
  37. StandardLeave = new StandardLeaveLink();
  38. }
  39. }
  40. }