FormUtils.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. }
  25. public static bool CanEditAssignmentForm(AssignmentForm form, Assignment assignment)
  26. {
  27. return assignment.EmployeeLink.ID == App.EmployeeID;
  28. }
  29. public static bool CanEditEmployeeForm(EmployeeForm form, Employee employee)
  30. {
  31. return employee.ID == App.EmployeeID;
  32. }
  33. public static bool CanEditJobForm(JobForm form, Job job)
  34. {
  35. return false;
  36. }
  37. public static bool CanEditJobITPForm(JobITPForm form, JobITP jobITP)
  38. {
  39. return false;
  40. }
  41. public static bool CanEditKanbanForm(KanbanForm form, Kanban kanban)
  42. {
  43. return kanban.EmployeeLink.ID == App.EmployeeID;
  44. }
  45. private static Kanban NewKanban(DigitalForm form)
  46. {
  47. var kanban = new Kanban();
  48. kanban.EmployeeLink.ID = App.EmployeeID;
  49. kanban.DueDate = DateTime.Today;
  50. kanban.Title = $"Form - {form.Description}";
  51. kanban.Notes = new[] { "Created by desktop forms" };
  52. kanban.Category = "In Progress";
  53. return kanban;
  54. }
  55. private static void KanbanOnSave(KanbanForm form, Kanban entity)
  56. {
  57. var subscriber = new KanbanSubscriber
  58. {
  59. Assignee = true
  60. };
  61. subscriber.Kanban.ID = entity.ID;
  62. subscriber.Employee.ID = entity.EmployeeLink.ID;
  63. new Client<KanbanSubscriber>().Save(subscriber, "");
  64. }
  65. public static bool CanEditLeaveRequestForm(LeaveRequestForm form, LeaveRequest leaveRequest)
  66. {
  67. return leaveRequest.EmployeeLink.ID == App.EmployeeID;
  68. }
  69. public static bool CanEditPurchaseOrderItemForm(PurchaseOrderItemForm form, PurchaseOrderItem purchaseOrderItem)
  70. {
  71. return false;
  72. }
  73. public static bool CanEditTimeSheetForm(TimeSheetForm form, TimeSheet timeSheet)
  74. {
  75. return timeSheet.EmployeeLink.ID == App.EmployeeID;
  76. }
  77. }
  78. }