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 HRM.BO; namespace HRM.DA { public class ObjectiveCategoryService : ServiceTemplate, IObjectiveCategoryService { #region Object Mapping private void MapObject(ObjectiveCategory oObjectiveCategory, DataReader oReader) { base.SetObjectID(oObjectiveCategory, oReader.GetInt32("ObjectiveCategoryID", 0)); oObjectiveCategory.Description = oReader.GetString("Description"); oObjectiveCategory.Category = (EnumObjectiveCategory)oReader.GetInt32("Category").Value; oObjectiveCategory.PMPYearID = oReader.GetInt32("PMPYearID", 0); oObjectiveCategory.ObjectiveTypeID = oReader.GetInt32("ObjectiveTypeID", 0); oObjectiveCategory.CreatedBy = oReader.GetInt32("CreatedBy", 0); oObjectiveCategory.CreatedDate = oReader.GetDateTime("CreatedDate").HasValue ? oReader.GetDateTime("CreatedDate").Value : DateTime.MinValue; oObjectiveCategory.ModifiedBy = oReader.GetInt32("ModifiedBy", 0); oObjectiveCategory.ModifiedDate = oReader.GetDateTime("ModifiedDate").HasValue ? oReader.GetDateTime("ModifiedDate").Value : (DateTime?)null; oObjectiveCategory.Status = (EnumStatus)oReader.GetInt32("Status").Value; this.SetObjectState(oObjectiveCategory, ObjectState.Saved); } protected override T CreateObject(DataReader oReader) { ObjectiveCategory oObjectiveCategory = new ObjectiveCategory(); MapObject(oObjectiveCategory, oReader); return oObjectiveCategory as T; } private void MapObjectiveCategoryGradesObject(ObjectiveCategoryGrades oObjectiveCategoryGrades, DataReader oReader) { SetObjectID(oObjectiveCategoryGrades, oReader.GetInt32("ObjectiveCategoryGradesID", 0)); oObjectiveCategoryGrades.ObjectiveType = oReader.GetInt32("ObjectiveType", 0); oObjectiveCategoryGrades.ObjectiveCategoryID = oReader.GetInt32("ObjectiveCategoryID", 0); oObjectiveCategoryGrades.GradeID = oReader.GetInt32("GradeID", 0); oObjectiveCategoryGrades.Percent = oReader.GetDouble("Percent").Value == 0.0 ? 0.0 : oReader.GetDouble("Percent").Value; oObjectiveCategoryGrades.OBMOSRequired = oReader.GetBoolean("OBMOSRequired").Value; oObjectiveCategoryGrades.DPMOSRequired = oReader.GetBoolean("DPMOSRequired").Value; this.SetObjectState(oObjectiveCategoryGrades, ObjectState.Saved); } private ObjectiveCategoryGrades CreateObjectiveCategoryGradesObject(DataReader oReader) { ObjectiveCategoryGrades item = new ObjectiveCategoryGrades(); MapObjectiveCategoryGradesObject(item, oReader); return item; } protected List CreateObjectiveCategoryGradesObjects(DataReader oReader) { List oItems = new List(); while (oReader.Read()) { ObjectiveCategoryGrades item = CreateObjectiveCategoryGradesObject(oReader); oItems.Add(item); } return oItems; } #endregion #region Service Implementation #region Get All public List Get() { List oObjectiveCategory = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(ObjectiveCategoryDA.Get(tc)); oObjectiveCategory = this.CreateObjects(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 } return oObjectiveCategory; } #endregion #region Get All public List Get(EnumStatus status) { List oObjectiveCategory = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(ObjectiveCategoryDA.Get(tc, status)); oObjectiveCategory = this.CreateObjects(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 } return oObjectiveCategory; } public List GetByPMPyear(int nID) { List oObjectiveCategory = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(ObjectiveCategoryDA.GetByPMPyear(tc, nID)); oObjectiveCategory = this.CreateObjects(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 } return oObjectiveCategory; } #endregion #region Get By ID public ObjectiveCategory Get(int id) { ObjectiveCategory oObjectiveCategory = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(ObjectiveCategoryDA.Get(tc, id)); oObjectiveCategory = 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 } return oObjectiveCategory; } #endregion #region Get Objective Category Grades public List GetObjectiveCategoryGrades(int iD) { List oObjectiveCategoryGrades = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(ObjectiveCategoryGradesDA.GetObjectiveCategoryGrades(tc, iD)); oObjectiveCategoryGrades = this.CreateObjectiveCategoryGradesObjects(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 } return oObjectiveCategoryGrades; } #endregion #region Insert public void Save(List items) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); if (items.Count > 0) ObjectiveCategoryGradesDA.DeleteByPMPYearID(tc, items[0].PMPYearID, items[0].Category, items[0].ObjectiveCategoryGrades[0].ObjectiveType); foreach (ObjectiveCategory item in items) { int id = tc.GenerateID("ObjectiveCategory", "ObjectiveCategoryID"); base.SetObjectID(item, (id)); ObjectiveCategoryDA.Save(tc, item); foreach (ObjectiveCategoryGrades og in item.ObjectiveCategoryGrades) { int id1 = tc.GenerateID("ObjectiveCategoryGrades", "ObjectiveCategoryGradesID"); base.SetObjectID(og, (id1)); og.ObjectiveCategoryID = item.ID; ObjectiveCategoryGradesDA.Save(tc, og); } } 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 Save(ObjectiveCategory item) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); ObjectiveCategoryGradesDA.DeleteByPMPYearID(tc, item.PMPYearID, item.Category, item.ObjectiveCategoryGrades[0].ObjectiveType); int id = tc.GenerateID("ObjectiveCategory", "ObjectiveCategoryID"); base.SetObjectID(item, (id)); ObjectiveCategoryDA.Save(tc, item); foreach (ObjectiveCategoryGrades og in item.ObjectiveCategoryGrades) { og.ObjectiveType = item.ObjectiveTypeID; int id1 = tc.GenerateID("ObjectiveCategoryGrades", "ObjectiveCategoryGradesID"); base.SetObjectID(og, (id1)); og.ObjectiveCategoryID = item.ID; ObjectiveCategoryGradesDA.Save(tc, og); } tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } #endregion #region Delete public void Delete(int id) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); ObjectiveCategoryDA.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 } }