LeaveRequestModel.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using System.Collections.ObjectModel;
  3. using System.Windows.Media;
  4. using Comal.Classes;
  5. using InABox.Core;
  6. using InABox.WPF;
  7. namespace PRSDesktop
  8. {
  9. public class LeaveRequestModel : Model<LeaveRequestModel, LeaveRequest>
  10. {
  11. public Guid EmployeeID { get; }
  12. public DateTime From { get; }
  13. public TimeSpan FromTime { get; }
  14. public DateTime To { get; }
  15. public TimeSpan ToTime { get; }
  16. public String Code { get; }
  17. public String? Subject { get; }
  18. public String? Color { get; }
  19. public String? Notes { get; }
  20. public LeaveRequestStatus Status { get; }
  21. public LeaveRequestModel(CoreRow row) : base(row)
  22. {
  23. EmployeeID = Get(x=>x.EmployeeLink.ID);
  24. From = Get(x => x.From);
  25. FromTime = Get(x => x.FromTime);
  26. To = Get(x => x.To);
  27. ToTime = Get(x => x.ToTime);
  28. Code = CoreUtils.Codify(Get(x => x.LeaveType.Description));
  29. Subject = Get(x => x.LeaveType.Description);
  30. Color = Get(x => x.LeaveType.Color);
  31. Status = Get(x => x.Status);
  32. Notes = Get(x => x.Notes);
  33. }
  34. public override Columns<LeaveRequest> GetColumns()
  35. {
  36. return InABox.Core.Columns.None<LeaveRequest>().Add(x => x.ID)
  37. .Add(x=>x.EmployeeLink.ID)
  38. .Add(x => x.From)
  39. .Add(x => x.FromTime)
  40. .Add(x => x.To)
  41. .Add(x => x.ToTime)
  42. .Add(x => x.LeaveType.Description)
  43. .Add(x => x.LeaveType.Color)
  44. .Add(x => x.Status)
  45. .Add(x => x.Notes);
  46. }
  47. }
  48. }