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 ESBProvision Service [Serializable] public class ESBProvisionService : ServiceTemplate, IESBProvisionService { #region Private functions and declaration Cache _cache = new Cache(typeof(ESBProvision)); #endregion public ESBProvisionService() { } private void MapObject(ESBProvision oESBProvision, DataReader oReader) { oESBProvision.EmployeeID = oReader.GetID("EmployeeID"); oESBProvision.SalaryMonthlyID = oReader.GetID("SalaryMonthlyID"); oESBProvision.UserID = oReader.GetID("UserID"); oESBProvision.ProcessMonthDate = oReader.GetDateTime("ProcessMonthDate").Value; oESBProvision.Provision = oReader.GetDouble("Provision").Value; oESBProvision.ProvisionOne = oReader.GetDouble("ProvisionOne").Value; oESBProvision.ProvisionTwo = oReader.GetDouble("ProvisionTwo").Value; this.SetObjectState(oESBProvision,Ease.CoreV35.ObjectState.Saved); } protected override T CreateObject(DataReader oReader) { ESBProvision oESBProvision = new ESBProvision(); MapObject(oESBProvision, oReader); return oESBProvision as T; } protected ESBProvision CreateObject(DataReader oReader) { ESBProvision oESBProvision = new ESBProvision(); MapObject(oESBProvision, oReader); return oESBProvision; } #region Service implementation public ESBProvision Get(ID id) { ESBProvision oESBProvision = new ESBProvision(); #region Cache Header oESBProvision = _cache["Get", id] as ESBProvision; if (oESBProvision != null) return oESBProvision; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(ESBProvisionDA.Get(tc, id)); if (oreader.Read()) { oESBProvision = 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(oESBProvision, "Get", id); #endregion return oESBProvision; } public ObjectsTemplate GetProvision(DateTime dFromDate, DateTime dToDate) { #region Cache Header ObjectsTemplate oESBProvisions = _cache["GetProvision", dFromDate, dToDate] as ObjectsTemplate; if (oESBProvisions != null) return oESBProvisions; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(ESBProvisionDA.GetProvision(tc, dFromDate, dToDate)); oESBProvisions = this.CreateObjects< ESBProvision>(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(oESBProvisions, "GetProvision", dFromDate, dToDate); #endregion return oESBProvisions; } public ObjectsTemplate GetProvision(int EmployeeID, DateTime dFromDate, DateTime dToDate) { #region Cache Header ObjectsTemplate oESBProvisions = _cache["GetProvision",EmployeeID, dFromDate, dToDate] as ObjectsTemplate; if (oESBProvisions != null) return oESBProvisions; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(ESBProvisionDA.GetProvision(tc,EmployeeID, dFromDate, dToDate)); oESBProvisions = 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(oESBProvisions, "GetProvision",EmployeeID, dFromDate, dToDate); #endregion return oESBProvisions; } public ObjectsTemplate GetProvision(string sEmpID, DateTime GratuityMonth) { #region Cache Header ObjectsTemplate oESBProvisions = _cache["GetProvision", sEmpID, GratuityMonth] as ObjectsTemplate; if (oESBProvisions != null) return oESBProvisions; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(ESBProvisionDA.GetProvision(tc, sEmpID, GratuityMonth)); oESBProvisions = 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(oESBProvisions, "GetProvision", sEmpID, GratuityMonth); #endregion return oESBProvisions; } public double GetOpeningBalance(int employeeId, DateTime fromDate) { double amount = 0; TransactionContext tc = null; try { tc = TransactionContext.Begin(); amount = ESBProvisionDA.GetOpeningBalance(tc, employeeId,fromDate); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } return amount; } public DataSet GetCumulativeProv(DateTime dateTime) { DataSet oCumulativeProvss = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); oCumulativeProvss = ESBProvisionDA.GetCumulativeProv(tc, dateTime); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } return oCumulativeProvss; } public ID Save(ESBProvision oESBProvision) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); ESBProvisionDA.Delete(tc,oESBProvision.EmployeeID, oESBProvision.SalaryMonthlyID); ESBProvisionDA.Insert(tc, oESBProvision); tc.End(); return oESBProvision.EmployeeID; } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } public ID Save(TransactionContext tc,ESBProvision oESBProvision) { try { ESBProvisionDA.Delete(tc, oESBProvision.EmployeeID, oESBProvision.SalaryMonthlyID); ESBProvisionDA.Insert(tc, oESBProvision); return oESBProvision.EmployeeID; } 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 nEmpID, ID nSalaryMonthlyID) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); ESBProvisionDA.Delete(tc, nEmpID, nSalaryMonthlyID); 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 }