using System; using System.Data; using Ease.Core.Model; using Ease.Core.DataAccess; using Ease.Core; using System.Collections.Generic; using Ease.Core.Utility; using System.Linq; using HRM.BO; namespace HRM.DA { public class FndMngmentWFService : ServiceTemplate { #region Cache #endregion #region Map Objects #region Map Parent private void MapObject(FndMngmentWF oFndMngment, DataReader oReader) { base.SetObjectID(oFndMngment, (oReader.GetInt32("FndMngmentWFID").Value)); oFndMngment.PurchaseType = oReader.GetString("PurchaseType"); oFndMngment.PurchaseAmount = oReader.GetDouble("PurchaseAmount").HasValue ? oReader.GetDouble("PurchaseAmount").Value : 0.0; oFndMngment.Description = oReader.GetString("Description"); oFndMngment.EmployeeID = oReader.GetInt32("EmployeeID", 0); oFndMngment.PFAmount = oReader.GetDouble("PFAmount").HasValue ? oReader.GetDouble("PFAmount").Value : 0.0; oFndMngment.CFAmount = oReader.GetDouble("CFAmount").HasValue ? oReader.GetDouble("CFAmount").Value : 0.0; oFndMngment.PFInterest = oReader.GetDouble("PFInterest").HasValue ? oReader.GetDouble("PFInterest").Value : 0.0; oFndMngment.CFInterest = oReader.GetDouble("CFInterest").HasValue ? oReader.GetDouble("CFInterest").Value : 0.0; oFndMngment.Gratuity = oReader.GetDouble("Gratuity").HasValue ? oReader.GetDouble("Gratuity").Value : 0.0; oFndMngment.Status = (EnumStatus)oReader.GetInt32("Status").Value; oFndMngment.CreatedBy = oReader.GetInt32("CreatedBy", 0); oFndMngment.CreatedDate = oReader.GetDateTime("CreatedDate").HasValue ? oReader.GetDateTime("CreatedDate").Value : DateTime.MinValue; oFndMngment.ModifiedBy = oReader.GetInt32("ModifiedBy", 0); oFndMngment.ModifiedDate = oReader.GetDateTime("ModifiedDate").HasValue ? oReader.GetDateTime("ModifiedDate").Value : (DateTime?)null; this.SetObjectState(oFndMngment, Ease.Core.ObjectState.Saved); } protected override T CreateObject(DataReader oReader) { FndMngmentWF oFndMngment = new FndMngmentWF(); MapObject(oFndMngment, oReader); return oFndMngment as T; } #endregion #region Map FndMngmentEmps private void MapFndMngmentEmpObject(FndMngmentEmp oFndMngmentEmp, DataReader oReader) { base.SetObjectID(oFndMngmentEmp, (oReader.GetInt32("FndMngmentEmpID").Value)); oFndMngmentEmp.FndMngmentWFID = (oReader.GetInt32("FndMngmentWFID").Value); oFndMngmentEmp.EmployeeID = (oReader.GetInt32("EmployeeID").Value); oFndMngmentEmp.EmployeeNo = oReader.GetString("EmployeeNo"); oFndMngmentEmp.EmployeeName = oReader.GetString("EmployeeName"); oFndMngmentEmp.DesigName = oReader.GetString("DesigName"); oFndMngmentEmp.EmailSent = oReader.GetBoolean("EmailSent").Value; oFndMngmentEmp.WebSent = oReader.GetBoolean("WebSent").Value; oFndMngmentEmp.SentDate = oReader.GetDateTime("SendDate").Value; this.SetObjectState(oFndMngmentEmp, Ease.Core.ObjectState.Saved); } private FndMngmentEmp CreateFndMngmentEmp(DataReader oReader) { FndMngmentEmp oFndMngmentEmp = new FndMngmentEmp(); MapFndMngmentEmpObject(oFndMngmentEmp, oReader); return oFndMngmentEmp; } private List CreateFndMngmentEmps(DataReader oReader) { List oFndMngmentEmps = new List(); FndMngmentEmp oFndMngmentEmp; while (oReader.Read()) { oFndMngmentEmp = new FndMngmentEmp(); oFndMngmentEmp = CreateFndMngmentEmp(oReader); oFndMngmentEmps.Add(oFndMngmentEmp); } return oFndMngmentEmps; } #endregion #region Map FndMngmentEmpRemarks private void MapFndMngmentEmpRemarksObject(FndMngmentEmpRemarks oFndMngmentEmpRemarks, DataReader oReader) { base.SetObjectID(oFndMngmentEmpRemarks, (oReader.GetInt32("FndMngmentEmpRemarksID").Value)); oFndMngmentEmpRemarks.FndMngmentEmpID = (oReader.GetInt32("FndMngmentEmpID").Value); oFndMngmentEmpRemarks.FndMngmentWFID = (oReader.GetInt32("FndMngmentWFID").Value); oFndMngmentEmpRemarks.RemarksDateTime = oReader.GetDateTime("RemarksDateTime").Value; oFndMngmentEmpRemarks.Remarks = oReader.GetString("Remarks"); oFndMngmentEmpRemarks.IsHR = oReader.GetBoolean("IsHR").Value; this.SetObjectState(oFndMngmentEmpRemarks, Ease.Core.ObjectState.Saved); } private FndMngmentEmpRemarks CreateFndMngmentEmpRemarks(DataReader oReader) { FndMngmentEmpRemarks oFndMngmentEmpRemarks = new FndMngmentEmpRemarks(); MapFndMngmentEmpRemarksObject(oFndMngmentEmpRemarks, oReader); return oFndMngmentEmpRemarks; } private List CreateFndMngmentEmpRemarkses(DataReader oReader) { List oFndMngmentEmpRemarkses = new List(); FndMngmentEmpRemarks oFndMngmentEmpRemarks; while (oReader.Read()) { oFndMngmentEmpRemarks = CreateFndMngmentEmpRemarks(oReader); oFndMngmentEmpRemarkses.Add(oFndMngmentEmpRemarks); } return oFndMngmentEmpRemarkses; } #endregion #endregion #region IFndMngmentWFService Members #region Get Functions public FndMngmentWF Get(int id) { FndMngmentWF oFndMngmentWF = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(FndMngmentWFDA.Get(tc, id)); if (oreader.Read()) { oFndMngmentWF = 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 } finally { tc.End(); } return oFndMngmentWF; } public List Get(EnumStatus status) { List oFndMngmentWFs = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(FndMngmentWFDA.Get(tc, status)); oFndMngmentWFs = CreateObjects(oreader); oreader.Close(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } finally { tc.End(); } return oFndMngmentWFs; } #region Insert Function public int Save(FndMngmentWF oFndMngment) { int id = 0; TransactionContext tc = null; try { int startingBatchNo; int previousBatchNo = 0; if (oFndMngment.IsNew) { tc = TransactionContext.Begin(true); id = (tc.GenerateID("FndMngmentWF", "FndMngmentWFID")); base.SetObjectID(oFndMngment, id); FndMngmentWFDA.Insert(tc, oFndMngment); oFndMngment.FndMngmentEmps.ForEach(o => o.FndMngmentWFID = id); if (oFndMngment.AllFndMngEmpRemarks != null) oFndMngment.AllFndMngEmpRemarks.ForEach(o => o.FndMngmentWFID = id); } else { id = oFndMngment.ID; oFndMngment.AllFndMngEmpRemarks.ForEach(o => o.FndMngmentWFID = oFndMngment.ID); foreach (FndMngmentEmp item in oFndMngment.FndMngmentEmps) { List fndRemarks = new List(); oFndMngment.AllFndMngEmpRemarks .Where(o => o.FndMngmentEmpID != 0 && o.FndMngmentEmpID == item.ID) .ToList() .ForEach(oo => fndRemarks.Add(oo)); item.FndMngmentEmpRmrkses = fndRemarks; } tc = TransactionContext.Begin(true); FndMngmentWFDA.Update(tc, oFndMngment); FndMngmentWFDA.DeleteFndMngmentEmpRemarkses(tc, id); FndMngmentWFDA.DeleteFndMngmentEmps(tc, id); } foreach (FndMngmentEmp item in oFndMngment.FndMngmentEmps) { int fnEmpid = (tc.GenerateID("FndMngmentEmp", "FndMngmentEmpID")); base.SetObjectID(item, fnEmpid); item.FndMngmentWFID = id; FndMngmentWFDA.InsertFndMngmentEmp(tc, item); foreach (FndMngmentEmpRemarks childItem in item.FndMngmentEmpRmrkses) { int fnEmpRemid = (tc.GenerateID("FndMngmentEmpRemarks", "FndMngmentEmpRemarksID")); base.SetObjectID(childItem, fnEmpRemid); childItem.FndMngmentWFID = id; childItem.FndMngmentEmpID = fnEmpid; FndMngmentWFDA.InsertFndMngmentEmpRemarks(tc, childItem); } } foreach (FndMngmentEmpRemarks item in oFndMngment.AllFndMngEmpRemarks.Where(obj => obj.IsHR)) { int fnEmpRemid = (tc.GenerateID("FndMngmentEmpRemarks", "FndMngmentEmpRemarksID")); base.SetObjectID(item, fnEmpRemid); item.FndMngmentWFID = id; FndMngmentWFDA.InsertFndMngmentEmpRemarks(tc, item); } } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } finally { tc.End(); } return oFndMngment.ID; } //public int Insert(FndMngmentWF oFndMngment) //{ // ID id = null; // TransactionContext tc = null; // try // { // int startingBatchNo; // int previousBatchNo = 0; // if (oFndMngment.IsNew) // { // tc = TransactionContext.Begin(true); // id = (tc.GenerateID("FndMngmentWF", "FndMngmentWFID")); // base.SetObjectID(oFndMngment, id); // FndMngmentWFDA.Insert(tc, oFndMngment); // oFndMngment.FndMngmentEmps.ForEach(o => o.FndMngmentWFID = id); // if (oFndMngment.AllFndMngEmpRemarks != null) // oFndMngment.AllFndMngEmpRemarks.ForEach(o => o.FndMngmentWFID = id); // } // else // { // id = oFndMngment.ID; // oFndMngment.AllFndMngEmpRemarks.ForEach(o => o.FndMngmentWFID = oFndMngment.ID); // foreach (FndMngmentEmp item in oFndMngment.FndMngmentEmps) // { // List fndRemarks = new List(); // oFndMngment.AllFndMngEmpRemarks // .Where(o => o.FndMngmentEmpID != null && !o.FndMngmentEmpID.IsUnassigned && o.FndMngmentEmpID == item.ID) // .ToList() // .ForEach(oo => fndRemarks.Add(oo)); // item.FndMngmentEmpRmrkses = fndRemarks; // } // tc = TransactionContext.Begin(true); // FndMngmentWFDA.Update(tc, oFndMngment); // FndMngmentWFDA.DeleteFndMngmentEmpRemarkses(tc, id); // FndMngmentWFDA.DeleteFndMngmentEmps(tc, id); // } // foreach (FndMngmentEmp item in oFndMngment.FndMngmentEmps) // { // ID fnEmpid = (tc.GenerateID("FndMngmentEmp", "FndMngmentEmpID")); // base.SetObjectID(item, fnEmpid); // item.FndMngmentWFID = id; // FndMngmentWFDA.InsertFndMngmentEmp(tc, item); // foreach (FndMngmentEmpRemarks childItem in item.FndMngmentEmpRmrkses) // { // ID fnEmpRemid = (tc.GenerateID("FndMngmentEmpRemarks", "FndMngmentEmpRemarksID")); // base.SetObjectID(childItem, fnEmpRemid); // childItem.FndMngmentWFID = id; // childItem.FndMngmentEmpID = fnEmpid; // FndMngmentWFDA.InsertFndMngmentEmpRemarks(tc, childItem); // } // } // foreach (FndMngmentEmpRemarks item in oFndMngment.AllFndMngEmpRemarks.Where(obj => obj.IsHR)) // { // ID fnEmpRemid = (tc.GenerateID("FndMngmentEmpRemarks", "FndMngmentEmpRemarksID")); // base.SetObjectID(item, fnEmpRemid); // item.FndMngmentWFID = id; // FndMngmentWFDA.InsertFndMngmentEmpRemarks(tc, item); // } // } // catch (Exception e) // { // #region Handle Exception // if (tc != null) // tc.HandleError(); // ExceptionLog.Write(e); // throw new ServiceException(e.Message, e); // #endregion // } // finally // { // tc.End(); // } // return oFndMngment.ID; //} public void Save(FndMngmentEmpRemarks oFndMngEmpRemarks) { int id = 0; TransactionContext tc = null; try { tc = TransactionContext.Begin(true); id = (tc.GenerateID("FndMngmentEmpRemarks", "FndMngmentEmpRemarksID")); base.SetObjectID(oFndMngEmpRemarks, id); FndMngmentWFDA.InsertFndMngmentEmpRemarks(tc, oFndMngEmpRemarks); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } finally { tc.End(); } } public void Deactivate(FndMngmentWF oFndMngment) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); oFndMngment.Status = EnumStatus.Inactive; FndMngmentWFDA.Update(tc, oFndMngment); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } finally { tc.End(); } } #endregion #region Delete Function public void Delete(int id) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); FndMngmentWFDA.DeleteFndMngmentEmpRemarkses(tc, id); FndMngmentWFDA.DeleteFndMngmentEmps(tc, id); FndMngmentWFDA.Delete(tc, id); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } finally { tc.End(); } } #endregion #endregion #endregion } }