| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | using Comal.Classes;using InABox.Clients;using InABox.Core;using Org.BouncyCastle.Asn1.X509;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace PRSDesktop{    public static class FormUtils    {        public static void Register()        {            DFUtils.AddFormUtils<AssignmentForm, Assignment, AssignmentLink>(CanEditAssignmentForm);            DFUtils.AddFormUtils<EmployeeForm, Employee, EmployeeLink>(CanEditEmployeeForm);            DFUtils.AddFormUtils<JobForm, Job, JobLink>(CanEditJobForm);            DFUtils.AddFormUtils<JobITPForm, JobITP, JobITPLink>(CanEditJobITPForm);            DFUtils.AddFormUtils<KanbanForm, Kanban, KanbanLink>(CanEditKanbanForm, NewKanban, KanbanOnSave);            DFUtils.AddFormUtils<LeaveRequestForm, LeaveRequest, LeaveRequestLink>(CanEditLeaveRequestForm);            DFUtils.AddFormUtils<PurchaseOrderItemForm, PurchaseOrderItem, PurchaseOrderItemLink>(CanEditPurchaseOrderItemForm);            DFUtils.AddFormUtils<TimeSheetForm, TimeSheet, TimeSheetLink>(CanEditTimeSheetForm);        }        public static bool CanEditAssignmentForm(AssignmentForm form, Assignment assignment)        {            return assignment.EmployeeLink.ID == App.EmployeeID;        }        public static bool CanEditEmployeeForm(EmployeeForm form, Employee employee)        {            return employee.ID == App.EmployeeID;        }        public static bool CanEditJobForm(JobForm form, Job job)        {            return true;        }        public static bool CanEditJobITPForm(JobITPForm form, JobITP jobITP)        {            return false;        }        public static bool CanEditKanbanForm(KanbanForm form, Kanban kanban)        {            return kanban.EmployeeLink.ID == App.EmployeeID;        }        private static Kanban NewKanban(DigitalForm form)        {            var kanban = new Kanban();            kanban.EmployeeLink.ID = App.EmployeeID;            kanban.DueDate = DateTime.Today;            kanban.Title = $"Form - {form.Description}";            kanban.Notes = new[] { "Created by desktop forms" };            kanban.Category = "In Progress";            return kanban;        }        private static void KanbanOnSave(KanbanForm form, Kanban entity)        {            var subscriber = new KanbanSubscriber            {                Assignee = true            };            subscriber.Kanban.ID = entity.ID;            subscriber.Employee.ID = entity.EmployeeLink.ID;            new Client<KanbanSubscriber>().Save(subscriber, "");        }        public static bool CanEditLeaveRequestForm(LeaveRequestForm form, LeaveRequest leaveRequest)        {            return leaveRequest.EmployeeLink.ID == App.EmployeeID;        }        public static bool CanEditPurchaseOrderItemForm(PurchaseOrderItemForm form, PurchaseOrderItem purchaseOrderItem)        {            return false;        }        public static bool CanEditTimeSheetForm(TimeSheetForm form, TimeSheet timeSheet)        {            return timeSheet.EmployeeLink.ID == App.EmployeeID;        }    }}
 |