using System; using System.Data; using System.Linq; using Ease.CoreV35; using Ease.CoreV35.Model; using Ease.CoreV35.DataAccess; using System.Collections.Generic; using Payroll.BO; using Ease.CoreV35.Caching; namespace Payroll.Service { #region EmployeeStatus Service [Serializable] public class EmployeeStatusService : ServiceTemplate, IEmployeeStatusService { #region Private functions and declaration Cache _cache = new Cache(typeof(EmployeeStatus)); #endregion public EmployeeStatusService() { } private void MapComponentObject(EmployeeStatus.EmpStatusComponent oEmployeeStatusComponent, DataReader oReader) { base.SetObjectID(oEmployeeStatusComponent, oReader.GetID("EmployeeStatusComponentID")); oEmployeeStatusComponent.ComponentType = oReader.GetInt32("EmployeeStatusComponent").Value; oEmployeeStatusComponent.StatusID = oReader.GetID("StatusID"); this.SetObjectState(oEmployeeStatusComponent, Ease.CoreV35.ObjectState.Saved); } private EmployeeStatus.EmpStatusComponent CreateComponentObject(DataReader oReader) { EmployeeStatus.EmpStatusComponent item = new EmployeeStatus.EmpStatusComponent(); MapComponentObject(item, oReader); return item; } private ObjectsTemplate CreateComponent(DataReader dr) { ObjectsTemplate oEmpSpouses = new ObjectsTemplate(); while (dr.Read()) { EmployeeStatus.EmpStatusComponent item = CreateComponentObject(dr); oEmpSpouses.Add(item); } return oEmpSpouses; } private void MapObject(EmployeeStatus oEmployeeStatus, DataReader oReader) { base.SetObjectID(oEmployeeStatus, oReader.GetID("StatusID")); oEmployeeStatus.EmpStatus = (EnumEmployeeStatus)oReader.GetInt32("EmpStatus").Value; oEmployeeStatus.Description = oReader.GetString("Description"); oEmployeeStatus.ContinueOwnPartPF = oReader.GetBoolean("ContinueOwnPartPF").Value; oEmployeeStatus.ContinueCmpPartPF = oReader.GetBoolean("ContinueCmpPartPF").Value; oEmployeeStatus.ContinueGratuity = oReader.GetBoolean("ContinueGratuity").Value; oEmployeeStatus.Sequence = oReader.GetInt32("SequenceNo").Value; oEmployeeStatus.Status = (EnumStatus)oReader.GetInt32("Status").Value; oEmployeeStatus.CreatedBy = oReader.GetID("CreatedBy").IsUnassigned ? ID.FromInteger(0) : oReader.GetID("CreatedBy"); oEmployeeStatus.CreatedDate = oReader.GetDateTime("CreatedDate").HasValue ? oReader.GetDateTime("CreatedDate").Value : DateTime.Now; //oEmployeeStatus.ModifiedBy = oReader.GetID("ModifiedBy").IsUnassigned ? ID.FromInteger(0) : oReader.GetID("ModifiedBy"); //oEmployeeStatus.ModifiedDate = oReader.GetDateTime("ModifiedDate").HasValue ? oReader.GetDateTime("ModifiedDate").Value : DateTime.Now; this.SetObjectState(oEmployeeStatus, Ease.CoreV35.ObjectState.Saved); } protected override T CreateObject(DataReader oReader) { EmployeeStatus oEmployeeStatus = new EmployeeStatus(); MapObject(oEmployeeStatus, oReader); return oEmployeeStatus as T; } protected EmployeeStatus CreateObject(DataReader oReader) { EmployeeStatus oEmployeeStatus = new EmployeeStatus(); MapObject(oEmployeeStatus, oReader); return oEmployeeStatus; } #region Service implementation public EmployeeStatus Get(ID id) { EmployeeStatus oEmployeeStatus = new EmployeeStatus(); #region Cache Header oEmployeeStatus = _cache["Get", id] as EmployeeStatus; if (oEmployeeStatus != null) return oEmployeeStatus; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(EmployeeStatusDA.Get(tc, id)); if (oreader.Read()) { oEmployeeStatus = 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(oEmployeeStatus, "Get", id); #endregion return oEmployeeStatus; } public EmployeeStatus Get(ID id, TransactionContext tc) { EmployeeStatus oEmployeeStatus = new EmployeeStatus(); #region Cache Header oEmployeeStatus = _cache["Get_tc", id] as EmployeeStatus; if (oEmployeeStatus != null) return oEmployeeStatus; #endregion try { DataReader oreader = new DataReader(EmployeeStatusDA.Get(tc, id)); if (oreader.Read()) { oEmployeeStatus = 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(oEmployeeStatus, "Get_tc", id); #endregion return oEmployeeStatus; } public ObjectsTemplate Get(EnumStatus status) { #region Cache Header ObjectsTemplate employeeStatuses = _cache["Get",status] as ObjectsTemplate; if (employeeStatuses != null) return employeeStatuses; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(EmployeeStatusDA.Get(tc, status)); employeeStatuses = 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(employeeStatuses, "Get", status); #endregion return employeeStatuses; } public ObjectsTemplate GetByEmpStatus(EnumStatus status,EnumEmployeeStatus empStatus) { #region Cache Header ObjectsTemplate employeeStatuses = _cache["Get", status,empStatus] as ObjectsTemplate; if (employeeStatuses != null) return employeeStatuses; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(EmployeeStatusDA.GetByEmpStatus(tc, status,empStatus)); employeeStatuses = 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(employeeStatuses, "Get", status,empStatus); #endregion return employeeStatuses; } public ObjectsTemplate Get() { #region Cache Header ObjectsTemplate employeeStatuses = _cache["Get"] as ObjectsTemplate; if (employeeStatuses != null) return employeeStatuses; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(EmployeeStatusDA.Get(tc)); employeeStatuses = 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(employeeStatuses,"Get"); #endregion return employeeStatuses; } public ObjectsTemplate GetChild(ID parentID) { #region Cache Header ObjectsTemplate employeeStatusCopms = _cache["Get", parentID] as ObjectsTemplate; if (employeeStatusCopms != null) return employeeStatusCopms; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dataReader = new DataReader(EmployeeStatusDA.GetChild(tc, parentID)); employeeStatusCopms = this.CreateComponent(dataReader); dataReader.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(employeeStatusCopms, "Get",parentID); #endregion return employeeStatusCopms; } public ObjectsTemplate GetChild(ID parentID, TransactionContext tc) { #region Cache Header ObjectsTemplate employeeStatusCopms = _cache["Get", parentID] as ObjectsTemplate; if (employeeStatusCopms != null) return employeeStatusCopms; #endregion try { DataReader dataReader = new DataReader(EmployeeStatusDA.GetChild(tc, parentID)); employeeStatusCopms = this.CreateComponent(dataReader); dataReader.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(employeeStatusCopms, "Get", parentID); #endregion return employeeStatusCopms; } public ID Save(EmployeeStatus oEmployeeStatus) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); if (oEmployeeStatus.IsNew) { int id = tc.GenerateID("EmployeeStatus", "StatusID"); base.SetObjectID(oEmployeeStatus, ID.FromInteger(id)); EmployeeStatusDA.Insert(tc, oEmployeeStatus); GradeSalaryChangeTypeService oItem = new GradeSalaryChangeTypeService(); } else { EmployeeStatusDA.Update(tc, oEmployeeStatus); } tc.End(); return oEmployeeStatus.ID; } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } public void SaveStatus(EmployeeStatus oEmployeeStatus) { TransactionContext tc = null; try { int Id=0; tc = TransactionContext.Begin(true); if (oEmployeeStatus.IsNew) { Id = tc.GenerateID("EmployeeStatus", "StatusID"); base.SetObjectID(oEmployeeStatus, ID.FromInteger(Id)); EmployeeStatusDA.Insert(tc, oEmployeeStatus); } else { Id = oEmployeeStatus.ID.Integer; EmployeeStatusDA.Update(tc, oEmployeeStatus); EmployeeStatusDA.DeleteChild(tc, oEmployeeStatus.ID); } if (oEmployeeStatus.GradeSalaryChangeType != null) { GradeSalaryChangeTypeService oItem = new GradeSalaryChangeTypeService(); int seqNo = tc.GenerateID("GradeSalaryChangeType", "SequenceNO"); //oItem.Delete(tc,oEmployeeStatus.ID); oItem.Save(tc, oEmployeeStatus.GradeSalaryChangeType, oEmployeeStatus.ID, seqNo); } foreach (EmployeeStatus.EmpStatusComponent statusComponent in oEmployeeStatus.EmployeeStatusComponents) { int cId = tc.GenerateID("EmployeeStatusComponent", "EmployeeStatusComponentID"); base.SetObjectID(statusComponent, ID.FromInteger(cId)); statusComponent.StatusID = ID.FromInteger(Id); EmployeeStatusDA.Insert(tc, statusComponent); } tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } private void UpdateParent(ID oldId, ID currentID, ObjectsTemplate configurations) { foreach (Configaration config in configurations) { if (config.ParentID == oldId) { config.ParentID = currentID; } } } public void Delete(ID id) { TransactionContext tc = null; try { EmployeeStatus oest = EmployeeStatus.Get(id); oest.GradeSalaryChangeType = GradeSalaryChangeType.Get(id); tc = TransactionContext.Begin(true); EmployeeStatusDA.DeleteChild(tc, id); EmployeeStatusDA.Delete(tc, id); if (oest.GradeSalaryChangeType != null) { GradeSalaryChangeTypeService oItem = new GradeSalaryChangeTypeService(); oItem.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 } } #endregion } #endregion }