using System; using InABox.Core; namespace Comal.Classes { public interface IStandardLeave { string Name { get; set; } DateTime From { get; set; } DateTime To { get; set; } } public class StandardLeaveLink : EntityLink, IStandardLeave, IExportable, IImportable { [LookupEditor(typeof(StandardLeave))] public override Guid ID { get; set; } [TextBoxEditor(Visible = Visible.Default, Editable = Editable.Disabled)] [EditorSequence(1)] public string Name { get; set; } [DateEditor(Visible = Visible.Default, Editable = Editable.Disabled)] [EditorSequence(2)] public DateTime From { get; set; } [DateEditor(Visible = Visible.Default, Editable = Editable.Disabled)] [EditorSequence(3)] public DateTime To { get; set; } } [UserTracking(typeof(LeaveRequest))] public class StandardLeave : Entity, IStandardLeave, IRemotable, IPersistent, ILicense { [TextBoxEditor] [EditorSequence(1)] public string Name { get; set; } [EntityRelationship(DeleteAction.SetNull)] [EditorSequence(2)] public ActivityLink LeaveType { get; set; } [DateEditor] [EditorSequence(3)] public DateTime From { get; set; } [TimeOfDayEditor] [EditorSequence(4)] public TimeSpan FromTime { get; set; } [DateEditor] [EditorSequence(5)] public DateTime To { get; set; } [TimeOfDayEditor] [EditorSequence(6)] public TimeSpan ToTime { get; set; } = new TimeSpan(23, 59, 59); [TimestampEditor(Editable = Editable.Disabled)] public DateTime Processed { get; set; } } public class PublicHolidayLookups : EntityLookup { public override Columns DefineColumns() { return new Columns(ColumnTypeFlags.DefaultVisible); } public override Filter DefineFilter() { return null; } public override SortOrder DefineSortOrder() { return new SortOrder(x => x.From); } } }