FormUtils.cs 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using Comal.Classes;
  2. using InABox.Clients;
  3. using InABox.Core;
  4. using Org.BouncyCastle.Asn1.X509;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace PRSDesktop
  11. {
  12. public static class FormUtils
  13. {
  14. public static void Register()
  15. {
  16. DFUtils.AddFormUtils<AssignmentForm, Assignment, AssignmentLink>(CanEditAssignmentForm);
  17. DFUtils.AddFormUtils<EmployeeForm, Employee, EmployeeLink>(CanEditEmployeeForm);
  18. DFUtils.AddFormUtils<JobForm, Job, JobLink>(CanEditJobForm);
  19. DFUtils.AddFormUtils<JobITPForm, JobITP, JobITPLink>(CanEditJobITPForm);
  20. DFUtils.AddFormUtils<KanbanForm, Kanban, KanbanLink>(CanEditKanbanForm, NewKanban, KanbanOnSave);
  21. DFUtils.AddFormUtils<LeaveRequestForm, LeaveRequest, LeaveRequestLink>(CanEditLeaveRequestForm);
  22. DFUtils.AddFormUtils<PurchaseOrderItemForm, PurchaseOrderItem, PurchaseOrderItemLink>(CanEditPurchaseOrderItemForm);
  23. DFUtils.AddFormUtils<TimeSheetForm, TimeSheet, TimeSheetLink>(CanEditTimeSheetForm);
  24. DFUtils.AddFormUtils<JobDocumentSetMileStoneForm, JobDocumentSetMileStone, JobDocumentSetMileStoneLink>(CanEditJobDocumentSetMileStoneForm);
  25. }
  26. public static bool CanEditAssignmentForm(AssignmentForm form, Assignment assignment)
  27. {
  28. return assignment.EmployeeLink.ID == App.EmployeeID;
  29. }
  30. public static bool CanEditEmployeeForm(EmployeeForm form, Employee employee)
  31. {
  32. return employee.ID == App.EmployeeID;
  33. }
  34. public static bool CanEditJobForm(JobForm form, Job job)
  35. {
  36. return true;
  37. }
  38. public static bool CanEditJobITPForm(JobITPForm form, JobITP jobITP)
  39. {
  40. return false;
  41. }
  42. public static bool CanEditJobDocumentSetMileStoneForm(JobDocumentSetMileStoneForm form, JobDocumentSetMileStone assignment)
  43. {
  44. return true;
  45. }
  46. public static bool CanEditKanbanForm(KanbanForm form, Kanban kanban)
  47. {
  48. return kanban.EmployeeLink.ID == App.EmployeeID;
  49. }
  50. private static Kanban NewKanban(DigitalForm form)
  51. {
  52. var kanban = new Kanban();
  53. kanban.EmployeeLink.ID = App.EmployeeID;
  54. kanban.DueDate = DateTime.Today;
  55. kanban.Title = $"Form - {form.Description}";
  56. kanban.Notes = new[] { "Created by desktop forms" };
  57. kanban.Status = KanbanStatus.InProgress;
  58. return kanban;
  59. }
  60. private static void KanbanOnSave(KanbanForm form, Kanban entity)
  61. {
  62. var subscriber = new KanbanSubscriber
  63. {
  64. Assignee = true
  65. };
  66. subscriber.Kanban.ID = entity.ID;
  67. subscriber.Employee.ID = entity.EmployeeLink.ID;
  68. new Client<KanbanSubscriber>().Save(subscriber, "");
  69. }
  70. public static bool CanEditLeaveRequestForm(LeaveRequestForm form, LeaveRequest leaveRequest)
  71. {
  72. return leaveRequest.EmployeeLink.ID == App.EmployeeID;
  73. }
  74. public static bool CanEditPurchaseOrderItemForm(PurchaseOrderItemForm form, PurchaseOrderItem purchaseOrderItem)
  75. {
  76. return false;
  77. }
  78. public static bool CanEditTimeSheetForm(TimeSheetForm form, TimeSheet timeSheet)
  79. {
  80. return timeSheet.EmployeeLink.ID == App.EmployeeID;
  81. }
  82. }
  83. }