using System; using System.Collections.Generic; using System.Linq; using System.Text; using Ease.CoreV35.Model; using Payroll.BO; using Ease.CoreV35.Caching; using Ease.CoreV35.DataAccess; using Payroll.Service.Attendence.Service; namespace Payroll.Service.Attendence { #region AccessCard Service [Serializable] public class AccessCardService : ServiceTemplate, IAccessCardService { #region Private functions and declaration Cache _cache = new Cache(typeof(AccessCard)); #endregion public AccessCardService() { } private void MapObject(AccessCard oAccessCard, DataReader oReader) { base.SetObjectID(oAccessCard, oReader.GetID("AccessCardID")); oAccessCard.CardNumber = oReader.GetString("CardNumber"); oAccessCard.TypeID = oReader.GetID("TypeID"); oAccessCard.Status = (EnumCardStatus)oReader.GetUInt16("Status").Value; this.SetObjectState(oAccessCard, Ease.CoreV35.ObjectState.Saved); } protected override T CreateObject(DataReader oReader) { AccessCard oAccessCard = new AccessCard(); MapObject(oAccessCard, oReader); return oAccessCard as T; } protected AccessCard CreateObject(DataReader oReader) { AccessCard oAccessCard = new AccessCard(); MapObject(oAccessCard, oReader); return oAccessCard; } #region Service implementation public AccessCard Get(ID id) { AccessCard oAccessCard = new AccessCard(); #region Cache Header oAccessCard = _cache["Get", id] as AccessCard; if (oAccessCard != null) return oAccessCard; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(AccessCardDA.Get(tc, id)); if (oreader.Read()) { oAccessCard = this.CreateObject(oreader); } oreader.Close(); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } #region Cache Footer _cache.Add(oAccessCard, "Get", id); #endregion return oAccessCard; } public AccessCard Get(string CardNumber) { AccessCard oAccessCard = new AccessCard(); #region Cache Header oAccessCard = _cache["Get", CardNumber] as AccessCard; if (oAccessCard != null) return oAccessCard; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(AccessCardDA.Get(tc, CardNumber)); if (oreader.Read()) { oAccessCard = this.CreateObject(oreader); } oreader.Close(); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } #region Cache Footer _cache.Add(oAccessCard, "Get", CardNumber); #endregion return oAccessCard; } public AccessCard Get(string CardNumber, TransactionContext tc) { AccessCard oAccessCard = new AccessCard(); #region Cache Header oAccessCard = _cache["Get", CardNumber] as AccessCard; if (oAccessCard != null) return oAccessCard; #endregion; try { DataReader oreader = new DataReader(AccessCardDA.Get(tc, CardNumber)); if (oreader.Read()) { oAccessCard = this.CreateObject(oreader); } oreader.Close(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } #region Cache Footer _cache.Add(oAccessCard, "Get", CardNumber); #endregion return oAccessCard; } public ObjectsTemplate Get() { #region Cache Header ObjectsTemplate accessCards = _cache["Get"] as ObjectsTemplate; if (accessCards != null) return accessCards; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(AccessCardDA.Get(tc)); accessCards = this.CreateObjects(dr); dr.Close(); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } #region Cache Footer _cache.Add(accessCards, "Get"); #endregion return accessCards; } public ObjectsTemplate Get(EnumCardStatus status) { #region Cache Header ObjectsTemplate accessCards = _cache["Get"] as ObjectsTemplate; if (accessCards != null) return accessCards; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(AccessCardDA.Get(tc, status)); accessCards = this.CreateObjects(dr); dr.Close(); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } #region Cache Footer _cache.Add(accessCards, "Get"); #endregion return accessCards; } public ObjectsTemplate Get(params EnumCardStatus[] status) { #region Cache Header ObjectsTemplate accessCards = _cache["Get"] as ObjectsTemplate; if (accessCards != null) return accessCards; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(AccessCardDA.Get(tc, status)); accessCards = this.CreateObjects(dr); dr.Close(); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } #region Cache Footer _cache.Add(accessCards, "Get"); #endregion return accessCards; } public ID Save(AccessCard oAccessCard) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); if (oAccessCard.IsNew) { int id = tc.GenerateID("AccessCard", "AccessCardID"); base.SetObjectID(oAccessCard, ID.FromInteger(id)); AccessCardDA.Insert(tc, oAccessCard); } else { AccessCardDA.Update(tc, oAccessCard); } tc.End(); return oAccessCard.ID; } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } public void Save(ObjectsTemplate oAccessCards) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); foreach (AccessCard ac in oAccessCards) { if (ac.IsNew) { ac.Status = EnumCardStatus.Free; int id = tc.GenerateID("AccessCard", "AccessCardID"); base.SetObjectID(ac, ID.FromInteger(id)); AccessCardDA.Insert(tc, ac); } else { AccessCardDA.Update(tc, ac); } } tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } public void Delete(ID id) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); AccessCardDA.Delete(tc, id); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } public bool IsExist(string CardNumber) { bool isExist = false; TransactionContext tc = null; try { tc = TransactionContext.Begin(); isExist = AccessCardDA.IsExist(tc, CardNumber); //accessCards = this.CreateObjects(dr); //dr.Close(); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } return isExist; } public void UpdateStatus(TransactionContext tc, ID cardID, EnumCardStatus status) { try { AccessCardDA.UpdateStatus(tc, cardID, status); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } public void UpdateStatus(ID cardID, EnumCardStatus status) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); AccessCardDA.UpdateStatus(tc, cardID, status); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } //for excel Upload public static void SaveForExcelUpload(TransactionContext tc, ObjectsTemplate accessCards) { ObjectsTemplate cardOperations = new ObjectsTemplate(); ObjectsTemplate empWorkPlans = new ObjectsTemplate(); try { foreach (AccessCard ac in accessCards) { EmployeeWorkPlanSetup empWorkPaln = new EmployeeWorkPlanSetup(); AccessCardDA.Insert(tc, ac); ac.CardOperation.CardNumber = ac.CardNumber; ac.CardOperation.Status = EnumCardStatus.Attached; cardOperations.Add(ac.CardOperation); //empWorkPaln.EmployeeID = ac.EmployeeWorkPlanSetup.EmployeeID; //empWorkPaln.ShiftID = ac.EmployeeWorkPlanSetup.ShiftID; //empWorkPaln.WorkPlanGroupID = ac.EmployeeWorkPlanSetup.WorkPlanGroupID; //empWorkPaln.StartDate = ac.EmployeeWorkPlanSetup.StartDate; //empWorkPlans.Add(empWorkPaln); } if (cardOperations.Count > 0) { CardOperationService cardOPService = new CardOperationService(); cardOPService.Save(tc, cardOperations); } //if (empWorkPlans.Count > 0) //{ // EmployeeWorkPlanSetupService empWorkPlavService = new EmployeeWorkPlanSetupService(); // empWorkPlavService.Save(tc, empWorkPlans); //} } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } #endregion } #endregion }