|
@@ -0,0 +1,66 @@
|
|
|
+using System;
|
|
|
+using System.Linq.Expressions;
|
|
|
+using InABox.Core;
|
|
|
+
|
|
|
+namespace Comal.Classes
|
|
|
+{
|
|
|
+
|
|
|
+ public interface IEmployeeLeaveRequest
|
|
|
+ {
|
|
|
+ EmployeeLink EmployeeLink { get; set; }
|
|
|
+
|
|
|
+ LeaveRequestActivityLink LeaveType { get; set; }
|
|
|
+
|
|
|
+ DateTime From { get; set; }
|
|
|
+ TimeSpan FromTime { get; set; }
|
|
|
+
|
|
|
+ DateTime To { get; set; }
|
|
|
+ TimeSpan ToTime { get; set; }
|
|
|
+
|
|
|
+ DateTime Approved { get; set; }
|
|
|
+ LeaveRequestStatus Status { get; set; }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public class EmployeeStandardLeaveGenerator : AutoEntityCartesianGenerator<IEmployeeLeaveRequest>
|
|
|
+ {
|
|
|
+ public override void Configure()
|
|
|
+ {
|
|
|
+ AddTable(LookupFactory.DefineFilter<Employee>())
|
|
|
+ .AddMapping(x => x.ID, x => x.EmployeeLink.ID);
|
|
|
+
|
|
|
+ AddTable<StandardLeave>(null)
|
|
|
+ .AddMapping(x => x.LeaveType.ID, x => x.LeaveType.ID)
|
|
|
+ .AddMapping(x => x.From, x => x.From)
|
|
|
+ .AddMapping(x => x.FromTime, x => x.FromTime)
|
|
|
+ .AddMapping(x => x.To, x => x.To)
|
|
|
+ .AddMapping(x => x.ToTime, x => x.ToTime)
|
|
|
+ .AddMapping(x=>x.Created, x=>x.Approved);
|
|
|
+
|
|
|
+ AddConstant(LeaveRequestStatus.Approved.ToString(), x=>x.Status);
|
|
|
+ }
|
|
|
+
|
|
|
+ public override bool Distinct => false;
|
|
|
+ }
|
|
|
+
|
|
|
+ [AutoEntity(typeof(EmployeeStandardLeaveGenerator))]
|
|
|
+ public class EmployeeStandardLeave : Entity, IRemotable, IPersistent, IEmployeeLeaveRequest
|
|
|
+ {
|
|
|
+ public EmployeeLink EmployeeLink { get; set; }
|
|
|
+ public LeaveRequestActivityLink LeaveType { get; set; }
|
|
|
+ public DateTime From { get; set; }
|
|
|
+ public TimeSpan FromTime { get; set; }
|
|
|
+ public DateTime To { get; set; }
|
|
|
+ public TimeSpan ToTime { get; set; }
|
|
|
+ public DateTime Approved { get; set; }
|
|
|
+ public LeaveRequestStatus Status { get; set; }
|
|
|
+
|
|
|
+ protected override void Init()
|
|
|
+ {
|
|
|
+ base.Init();
|
|
|
+ EmployeeLink = new EmployeeLink();
|
|
|
+ LeaveType = new LeaveRequestActivityLink();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|