using System; using System.Collections.Generic; using System.Linq; using System.Text; using Ease.CoreV35.Model; using Payroll.BO; using Ease.CoreV35.Caching; using Payroll.Service.Attendence.DA; using Ease.CoreV35.DataAccess; using Payroll.BO; namespace Payroll.Service.Attendence.Service { #region CardOperation Service [Serializable] public class CardOperationService : ServiceTemplate, ICardOperationService { #region Private functions and declaration Cache _cache = new Cache(typeof(CardOperation)); #endregion public CardOperationService() { } private void MapObject(CardOperation oCardOperation, DataReader oReader) { base.SetObjectID(oCardOperation, oReader.GetID("CardOperationID")); oCardOperation.CardID = oReader.GetID("CardID"); oCardOperation.CardNumber = oReader.GetString("CardNumber"); oCardOperation.Status = (EnumCardStatus)oReader.GetInt32("CardStatus").Value; oCardOperation.EmployeeID = oReader.GetID("EmployeeID"); oCardOperation.Comments = oReader.GetString("Comments"); oCardOperation.AssignDate = oReader.GetDateTime("AssignDate").Value; oCardOperation.CreatedBy = oReader.GetID("CreatedBy"); oCardOperation.CreatedDate = oReader.GetDateTime("CreatedDate").Value; oCardOperation.ModifiedBy = oReader.GetID("ModifiedBy"); oCardOperation.ModifiedDate = oReader.GetDateTime("ModifiedDate"); this.SetObjectState(oCardOperation, Ease.CoreV35.ObjectState.Saved); } protected override T CreateObject(DataReader oReader) { CardOperation oCardOperation = new CardOperation(); MapObject(oCardOperation, oReader); return oCardOperation as T; } protected CardOperation CreateObject(DataReader oReader) { CardOperation oCardOperation = new CardOperation(); MapObject(oCardOperation, oReader); return oCardOperation; } #region Service implementation public CardOperation Get(ID id) { CardOperation oCardOperation = new CardOperation(); #region Cache Header oCardOperation = _cache["Get", id] as CardOperation; if (oCardOperation != null) return oCardOperation; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(CardOperationDA.Get(tc, id)); if (oreader.Read()) { oCardOperation = 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(oCardOperation, "Get", id); #endregion return oCardOperation; } public CardOperation GetByCardID(ID id) { CardOperation oCardOperation = new CardOperation(); #region Cache Header oCardOperation = _cache["GetByCardID", id] as CardOperation; if (oCardOperation != null) return oCardOperation; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(CardOperationDA.GetByCardID(tc, id)); if (oreader.Read()) { oCardOperation = 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(oCardOperation, "GetByCardID", id); #endregion return oCardOperation; } public CardOperation GetByEmpIDAndCardID(ID EmpID, ID CardID) { CardOperation oCardOperation = new CardOperation(); #region Cache Header oCardOperation = _cache["GetByEmpIDAndCardID", EmpID, CardID] as CardOperation; if (oCardOperation != null) return oCardOperation; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(CardOperationDA.GetByEmpIDAndCardID(tc, EmpID.Integer, CardID.Integer)); if (oreader.Read()) { oCardOperation = 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(oCardOperation, "GetByEmpIDAndCardID", EmpID, CardID); #endregion return oCardOperation; } public CardOperation Get(string CardNumber) { CardOperation oCardOperation = new CardOperation(); #region Cache Header oCardOperation = _cache["Get", CardNumber] as CardOperation; if (oCardOperation != null) return oCardOperation; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(CardOperationDA.Get(tc, CardNumber)); if (oreader.Read()) { oCardOperation = 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(oCardOperation, "Get", CardNumber); #endregion return oCardOperation; } public ObjectsTemplate Get() { #region Cache Header ObjectsTemplate cardOperations = _cache["Get"] as ObjectsTemplate; if (cardOperations != null) return cardOperations; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(CardOperationDA.Get(tc)); cardOperations = 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(cardOperations, "Get"); #endregion return cardOperations; } public ID Save(CardOperation oCardOperation) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); if (oCardOperation.IsNew) { int id = tc.GenerateID("CardOperation", "CardOperationID"); base.SetObjectID(oCardOperation, ID.FromInteger(id)); CardOperationDA.Insert(tc, oCardOperation); } else { CardOperationDA.Update(tc, oCardOperation); } tc.End(); return oCardOperation.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 ocardOperations) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); AccessCardService ac = new AccessCardService(); EmployeeService emp = new EmployeeService(); foreach (CardOperation CardOP in ocardOperations) { if (CardOP.IsNew) { int id = tc.GenerateID("CardOperation", "CardOperationID"); base.SetObjectID(CardOP, ID.FromInteger(id)); CardOperationDA.Insert(tc, CardOP); ac.UpdateStatus(tc, CardOP.CardID, CardOP.Status); emp.UpdateCardInformation(tc, CardOP.EmployeeID, CardOP.CardID, true); } else { CardOperationDA.Update(tc, CardOP); ac.UpdateStatus(tc, CardOP.CardID, CardOP.Status); emp.UpdateCardInformation(tc, CardOP.EmployeeID, CardOP.CardID, true); } } 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); CardOperationDA.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 } } //for Excel Upload public void Save(TransactionContext tc, ObjectsTemplate ocardOperations) { try { EmployeeService emp = new EmployeeService(); foreach (CardOperation CardOP in ocardOperations) { if (CardOP.IsNew) { int id = tc.GenerateID("CardOperation", "CardOperationID"); base.SetObjectID(CardOP, ID.FromInteger(id)); //Payroll.BO.AuditTrailBase audit = new Payroll.BO.AuditTrailBase(); CardOP.CreatedBy = User.CurrentUser.ID; CardOP.CreatedDate = DateTime.Now; CardOperationDA.Insert(tc, CardOP); emp.UpdateCardInformation(tc, CardOP.EmployeeID, CardOP.CardID, true); } else { CardOperationDA.Update(tc, CardOP); emp.UpdateCardInformation(tc, CardOP.EmployeeID, CardOP.CardID, true); } } } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } // #endregion } #endregion }