CEL_Payroll/Payroll.BO/Attendence/ShiftRotation.cs

217 lines
5.6 KiB
C#
Raw Normal View History

2024-09-17 14:30:13 +06:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ease.CoreV35.Caching;
using Ease.CoreV35.Model;
namespace Payroll.BO
{
#region ShiftRotation
[Serializable]
public class ShiftRotation : BasicBaseObject
{
#region Cache Store
private static Cache _cache = new Cache(typeof(ShiftRotation));
#endregion
#region Constructor
public ShiftRotation()
{
_shiftID = null;
_workPlanType = EnumWorkPlanGroup.Counter_Clock_1;
_status = EnumStatus.Active;
}
#endregion
#region Input validator
public string[] InputValidator()
{
string[] sErrorString = new string[2];
if (this.ShiftID.Integer <= 0)
{
sErrorString[0] = "ID can not be empty";
sErrorString[1] = "ID";
return sErrorString;
}
sErrorString = null;
return sErrorString;
}
#endregion
#region Properties
#region ShiftID : ID
private ID _shiftID;
public ID ShiftID
{
get { return _shiftID; }
set
{
base.OnPropertyChange<ID>("ShiftID", _shiftID, value);
_shiftID = value;
}
}
#endregion
#region Type : ID
private EnumWorkPlanGroup _workPlanType;
public EnumWorkPlanGroup WorkPlanType
{
get { return _workPlanType; }
set
{
_workPlanType = value;
}
}
#endregion
#region Shift : Shift
private Shift _shift;
public Shift Shift
{
get
{
if (_shift == null && _shiftID.Integer > 0)
{
_shift = new Shift();
_shift = Shift.Get(_shiftID);
}
return this._shift;
}
set
{
_shift = value;
}
}
#endregion
public string ShortName
{
get
{
if (Shift == null) return "";
return this._shift.ShortName;
}
}
#region Service Factory IShiftRotationService : IShiftRotationService
internal static IShiftRotationService Service
{
get { return Services.Factory.CreateService<IShiftRotationService>(typeof(IShiftRotationService)); }
}
#endregion
#endregion
#region Functions
public static ShiftRotation Get(ID nID)
{
ShiftRotation oShiftRotation = null;
#region Cache Header
oShiftRotation = (ShiftRotation)_cache["Get", nID];
if (oShiftRotation != null)
return oShiftRotation;
#endregion
oShiftRotation = ShiftRotation.Service.Get(nID);
#region Cache Footer
_cache.Add(oShiftRotation, "Get", nID);
#endregion
return oShiftRotation;
}
public static ObjectsTemplate<ShiftRotation> Get(EnumWorkPlanGroup workgrouptype)
{
#region Cache Header
ObjectsTemplate<ShiftRotation> shiftRotations = _cache["Get"] as ObjectsTemplate<ShiftRotation>;
if (shiftRotations != null)
return shiftRotations;
#endregion
try
{
shiftRotations = Service.Get(workgrouptype);
}
catch (ServiceException e)
{
throw new Exception(e.Message, e);
}
#region Cache Footer
_cache.Add(shiftRotations, "Get");
#endregion
return shiftRotations;
}
public static int GetIndex(ObjectsTemplate<ShiftRotation> shitrotationcol, ID shiftid)
{
int index = 0;
foreach (ShiftRotation item in shitrotationcol)
{
if (item.ShiftID == shiftid)
return index;
index = index + 1;
}
throw new ServiceException("Shift not found in the shift rotaion table in database");
return index;
}
public ID Save()
{
this.SetAuditTrailProperties();
return ShiftRotation.Service.Save(this);
}
public void Delete(ID id)
{
ShiftRotation.Service.Delete(id);
}
public static ObjectsTemplate<ShiftRotation> Get(EnumStatus status)
{
#region Cache Header
ObjectsTemplate<ShiftRotation> shiftRotations = _cache["Get", status] as ObjectsTemplate<ShiftRotation>;
if (shiftRotations != null)
return shiftRotations;
#endregion
try
{
shiftRotations = Service.Get(status);
}
catch (ServiceException e)
{
throw new Exception(e.Message, e);
}
#region Cache Footer
_cache.Add(shiftRotations, "Get", status);
#endregion
return shiftRotations;
}
#endregion
}
#endregion
#region IShiftRotation Service
public interface IShiftRotationService
{
ShiftRotation Get(ID id);
ObjectsTemplate<ShiftRotation> Get(EnumWorkPlanGroup workGroupType);
ID Save(ShiftRotation item);
void Delete(ID id);
ObjectsTemplate<ShiftRotation> Get(EnumStatus status);
}
#endregion
}