using System; using System.Collections.Generic; using System.Linq; using System.Text; using Ease.Core; namespace HRM.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 = 0; _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 int _shiftID; public int ShiftID { get { return _shiftID; } set { //base.OnPropertyChange("ShiftID", _shiftID, value); _shiftID = value; } } #endregion #region Type : ID private EnumWorkPlanGroup _workPlanType; public EnumWorkPlanGroup WorkPlanType { get { return _workPlanType; } set { _workPlanType = value; } } #endregion //#region WorkPlanGroupType : EnumWorkPlanGroupType //private EnumWorkPlanGroup _workPlanGroupType; //public EnumWorkPlanGroup WorkPlanGroupType //{ // get { return _workPlanGroupType; } // set // { // //base.OnPropertyChange("WorkPlanGroupType", (short)_workPlanGroupType, (short)value); // _workPlanGroupType = value; // } //} //#endregion #region Shift : Shift private Shift _shift; public int payrollTypeID { get; set; } 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 ShiftShortName { get;set; } public string WorkPlanGroupName { get { switch (this._workPlanType) { case EnumWorkPlanGroup.Fixed: return "Fixed"; case EnumWorkPlanGroup.Counter_Clock_1: return "Counter_Clock_1"; case EnumWorkPlanGroup.Counter_Clock_2: return "Counter_Clock_2"; case EnumWorkPlanGroup.Counter_Clock_3: return "Counter_Clock_3"; case EnumWorkPlanGroup.Counter_Clock_4: return "Counter_Clock_4"; case EnumWorkPlanGroup.Counter_Clock_5: return "Counter_Clock_5"; case EnumWorkPlanGroup.Counter_Clock_6: return "Counter_Clock_6"; case EnumWorkPlanGroup.Counter_Clock_7: return "Counter_Clock_7"; case EnumWorkPlanGroup.Counter_Clock_8: return "Counter_Clock_8"; case EnumWorkPlanGroup.Double_Shift_1: return "Double_Shift_1"; case EnumWorkPlanGroup.Double_Shift_2: return "Double_Shift_2"; case EnumWorkPlanGroup.Double_Shift_3: return "Double_Shift_3"; case EnumWorkPlanGroup.Double_Shift_4: return "Double_Shift_4"; case EnumWorkPlanGroup.Two_Days_Shift_1: return "Two_Days_Shift_1"; case EnumWorkPlanGroup.Two_Days_Shift_2: return "Two_Days_Shift_2"; case EnumWorkPlanGroup.Three_Days_Shift_1: return "Three_Days_Shift_1"; case EnumWorkPlanGroup.Three_Days_Shift_2: return "Three_Days_Shift_2"; default: return "NONE"; } } } //#region Service Factory IShiftRotationService : IShiftRotationService //internal static IShiftRotationService Service //{ // get { return Services.Factory.CreateService(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 Get(EnumWorkPlanGroupType workgrouptype) //{ // #region Cache Header // ObjectsTemplate shiftRotations = _cache["Get"] as ObjectsTemplate; // 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 ObjectsTemplate Get(EnumWorkPlanGroup workgrouptype) //{ // #region Cache Header // ObjectsTemplate shiftRotations = _cache["Get"] as ObjectsTemplate; // 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 ShiftRotation Get(EnumWorkPlanGroup workgrouptype, int sequence) //{ // ShiftRotation oShiftRotation = null; // #region Cache Header // oShiftRotation = (ShiftRotation)_cache["Get", sequence]; // if (oShiftRotation != null) // return oShiftRotation; // #endregion // oShiftRotation = ShiftRotation.Service.Get(workgrouptype, sequence); // #region Cache Footer // _cache.Add(oShiftRotation, "Get", sequence); // #endregion // return oShiftRotation; //} //public static int GetIndex(ObjectsTemplate 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 static int NextShift(List shitrotationcol, int shiftid) { int index = 0; index = shitrotationcol.FindIndex(x => x.ShiftID == shiftid); if (index == -1) throw new Exception("Shift not found in the shift rotaion table in database"); if (index == shitrotationcol.Count - 1) index = 0; else index = index + 1; return shitrotationcol[index].ShiftID; } public int NextShiftID(List shiftRotations) { int index = 0; index = shiftRotations.FindIndex(x => x.ShiftID == this.ShiftID); if (index == -1) throw new Exception("Shift not found in the shift rotaion table in database"); if (index == shiftRotations.Count - 1) index = 0; else index = index + 1; return shiftRotations[index].ShiftID; } //public static ID NextShift(ObjectsTemplate shitrotationcol, ID shiftid) //{ // int index = 0; // index = shitrotationcol.FindIndex(x => x.ShiftID.Integer == shiftid.Integer); // if (index == -1) throw new ServiceException("Shift not found in the shift rotaion table in database"); // if (index == shitrotationcol.Count - 1) index = 0; // else index = index + 1; // return shitrotationcol[index].ShiftID; //} //public int NextShiftID(List shiftRotations) //{ // int index = 0; // index = shiftRotations.FindIndex(x => x.ShiftID.Integer == this.ShiftID.Integer); // if (index == -1) // throw new ServiceException("Shift not found in the shift rotaion table in database"); // if (index == shiftRotations.Count - 1) // index = 0; // else // index = index + 1; // return shiftRotations[index].ShiftID.Integer; //} //public ID Save() //{ // this.SetAuditTrailProperties(); // return ShiftRotation.Service.Save(this); //} //public void Delete(ID id) //{ // ShiftRotation.Service.Delete(id); //} //public static ObjectsTemplate Get(EnumStatus status) //{ // #region Cache Header // ObjectsTemplate shiftRotations = _cache["Get", status] as ObjectsTemplate; // 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(int id); List Get(EnumWorkPlanGroup workgrouptype); int Save(ShiftRotation item); void Delete(int id); List Get(EnumStatus status, int payrolltypeid); ShiftRotation Get(EnumWorkPlanGroup workgrouptype, int sequence); } #endregion }