using System; using AutoProperties; using InABox.Core; namespace Comal.Classes { public class LeaveRequestApprovalSet : Entity, IRemotable, IPersistent, ILicense { [UniqueCodeEditor] [EditorSequence(1)] public string Code { get; set; } [EditorSequence(2)] public string Description { get; set; } [EditorSequence(3)] [ScriptEditor] public string ApprovalSetUpdateScript { get; set; } [InterceptIgnore] [DoNotPersist] [DoNotSerialize] public static string UpdateApprovalsMethodName => "UpdateLeaveApprovals"; [Editable(Editable.Hidden)] public bool IsDefault { get; set; } public static string DefaultApprovalSetUpdateScript() { return @" using Comal.Classes; public class Module { public void " + UpdateApprovalsMethodName + @"(LeaveRequest leave, List approvals) { // Update the 'approvals' list whenever the 'bill' is updated. } }"; } static LeaveRequestApprovalSet() { DefaultColumns.Add(x => x.Code); DefaultColumns.Add(x => x.Description); } } public class LeaveRequestApprovalSetLink : EntityLink { [RequiredColumn] [LookupEditor(typeof(LeaveRequestApprovalSet))] public override Guid ID { get; set; } public string Code { get; set; } public string Description { get; set; } } }