using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Ease.CoreV35;

namespace HRM.BO
{
    [Serializable]
    public class AttendanceWFHistory : BasicBaseObject
    {
        #region Constructor

        public AttendanceWFHistory()
        {
            EmployeeID = 0;
            DailyAttnProcessID = 0;
            WFStatus = EnumWFAttnStatus.None;
            OTHour = 0;
            Remarks = "";
        }

        #endregion

        #region Properties

        public int EmployeeID { get; set; }
        public int DailyAttnProcessID { get; set; }
        public EnumWFAttnStatus WFStatus { get; set; }
        public double OTHour { get; set; }
        public string Remarks { get; set; }
        public EnumAttendanceType AttandanceStatus { get; set; }

        #endregion

        //#region Service Factory IAttendanceWFHistoryService : IAttendanceWFHistoryService

        //internal static IAttendanceWFHistoryService Service
        //{
        //    get { return Services.Factory.CreateService<IAttendanceWFHistoryService>(typeof(IAttendanceWFHistoryService)); }
        //}

        //#endregion

        //#region Function

        //public ID Save()
        //{
        //    this.SetAuditTrailProperties();
        //    return AttendanceWFHistory.Service.Save(this);
        //}
        //public void Delete(ID id)
        //{
        //    AttendanceWFHistory.Service.Delete(id);
        //}
        //public static AttendanceWFHistory Get(ID nID)
        //{
        //    AttendanceWFHistory oAttendanceWFHistory = null;
        //    #region Cache Header
        //    oAttendanceWFHistory = (AttendanceWFHistory)_cache["Get", nID];
        //    if (oAttendanceWFHistory != null)
        //        return oAttendanceWFHistory;
        //    #endregion
        //    oAttendanceWFHistory = AttendanceWFHistory.Service.Get(nID);
        //    #region Cache Footer
        //    _cache.Add(oAttendanceWFHistory, "Get", nID);
        //    #endregion
        //    return oAttendanceWFHistory;
        //}

        //public static ObjectsTemplate<AttendanceWFHistory> GetByEmpID(ID employeeid)
        //{
        //    #region Cache Header

        //    ObjectsTemplate<AttendanceWFHistory> attendanceWFHistories = _cache["Get"] as ObjectsTemplate<AttendanceWFHistory>;
        //    if (attendanceWFHistories != null)
        //        return attendanceWFHistories;

        //    #endregion

        //    try
        //    {
        //        attendanceWFHistories = Service.GetByEmpID(employeeid);
        //    }
        //    catch (ServiceException e)
        //    {
        //        throw new Exception(e.Message, e);
        //    }

        //    #region Cache Footer

        //    _cache.Add(attendanceWFHistories, "Get");

        //    #endregion

        //    return attendanceWFHistories;
        //}

        //#endregion
    }

	public interface IAttendanceWFHistoryService
	{
		int Save(AttendanceWFHistory item);
		void Delete(int id);
		AttendanceWFHistory Get(int id);
		List<AttendanceWFHistory> GetByEmpID(int nID);
	}
}