using Ease.Core.Model; using Ease.Core.DataAccess; using Ease.Core; using System.Collections.Generic; using Ease.Core.Utility; using HRM.BO; using HRM.DA; using System; using System.Data; namespace HRM.DA { public class SurveyResultService : ServiceTemplate, ISurveyResultService { public SurveyResultService() { } private void MapObject(SurveyResult oSurveyResult, DataReader oReader) { //base.SetObjectID(oSurveyResult, oReader.GetID("SurveyResultID")); oSurveyResult.SurveyID = (oReader.GetInt32("SurveyID").Value); oSurveyResult.AnswerID = oReader.GetInt32("AnswerID").GetValueOrDefault(); oSurveyResult.EmployeeID = oReader.GetInt32("EmployeeID").GetValueOrDefault(); oSurveyResult.QuestionID = oReader.GetInt32("QuestionID").GetValueOrDefault(); oSurveyResult.IsCorrect = oReader.GetBoolean("IsCorrect").GetValueOrDefault(); oSurveyResult.ForEmployeeID = oReader.GetInt32("ForEmployeeID").GetValueOrDefault(); oSurveyResult.Weight = oReader.GetDouble("Weight").GetValueOrDefault(); oSurveyResult.CandidateID = oReader.GetInt32("CandidateID").GetValueOrDefault(); this.SetObjectState(oSurveyResult, Ease.Core.ObjectState.Saved); } protected override T CreateObject(DataReader oReader) { SurveyResult oSurveyResult = new SurveyResult(); MapObject(oSurveyResult, oReader); return oSurveyResult as T; } protected SurveyResult CreateObject(DataReader oReader) { SurveyResult oSurveyResult = new SurveyResult(); MapObject(oSurveyResult, oReader); return oSurveyResult; } #region Service implementation public List GetSurveyResult(int surveyId) { List oSurveyResults = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(SurveyResultDA.GetSurveyResult(tc, surveyId)); oSurveyResults = 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 } return oSurveyResults; } public List GetSurveyResult() { List oSurveyResults = null; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(SurveyResultDA.GetSurveyResult(tc)); oSurveyResults = 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 } return oSurveyResults; } public List GetSurveyResult(int surveyId, string employeeIds) { List oSurveyResults = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(SurveyResultDA.GetSurveyResult(tc, surveyId, employeeIds)); oSurveyResults = 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 } return oSurveyResults; } public List GetSurveyResult(int surveyId, int employeeId, int questionID) { List oSurveyResults = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(SurveyResultDA.GetSurveyResult(tc, surveyId, employeeId, questionID)); oSurveyResults = 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 } return oSurveyResults; } public List GetSurveyResults(int surveyId, int candidateId) { List oSurveyResults = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(SurveyResultDA.GetSurveyResults(tc, surveyId, candidateId)); oSurveyResults = 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 } return oSurveyResults; } public SurveyResult GetSurveyResultByCandidateID(int surveyId, int candidateId, int questionID) { SurveyResult oSurveyResult = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(SurveyResultDA.GetSurveyResultByCandidateID(tc, surveyId, candidateId, questionID)); if (dr.Read()) { oSurveyResult = this.CreateObject(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 } return oSurveyResult; } public void Save(List oSurveyResults) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); foreach (SurveyResult oSurveyResult in oSurveyResults) { SurveyResultDA.DeleteSurveyResult(tc, oSurveyResult.SurveyID, (int)oSurveyResult.EmployeeID, oSurveyResult.QuestionID); } foreach (SurveyResult oSurveyResult in oSurveyResults) { //if (oSurveyResult.IsNew) //{ //int id = tc.GenerateID("SurveyResult", "SurveyResultID"); //base.SetObjectID(oSurveyResult, (id)); SurveyResultDA.Insert(tc, oSurveyResult); //} //else //{ // SurveyResultDA.Update(tc, oSurveyResult); //} } tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } public int Save(SurveyResult oSurveyResult) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); if (oSurveyResult.IsNew) { //int id = tc.GenerateID("SurveyResult", "SurveyResultID"); //base.SetObjectID(oSurveyResult, (id)); SurveyResultDA.Insert(tc, oSurveyResult); } else { SurveyResultDA.Update(tc, oSurveyResult); } tc.End(); return oSurveyResult.SurveyID; } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } internal int getHitCount(TransactionContext tc, int surveyID, int questionID, int answerID) { return SurveyAnswerCountDA.GetSurveyAnswerHitCount(tc, surveyID, questionID, answerID); } public void SaveSurveyResult(SurveyResult oSurveyResult, SurveyEmployee surEmp, bool IsAnnonymous, int GeneralNoticeID) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); SurveyEmployeeDA.UpdateSurveyEmployee(tc, surEmp); if (IsAnnonymous) SurveyResultDA.Insert(tc, oSurveyResult); if (getHitCount(tc, oSurveyResult.SurveyID, oSurveyResult.QuestionID, oSurveyResult.AnswerID) > 0) SurveyAnswerCountDA.UpdateSurveyAnswerCount(tc, oSurveyResult.SurveyID, oSurveyResult.QuestionID, oSurveyResult.AnswerID); else SurveyAnswerCountDA.InsertSurveyAnswerCount(tc, oSurveyResult.SurveyID, oSurveyResult.QuestionID, oSurveyResult.AnswerID); //GeneralNoticeDA.Delete(tc, GeneralNoticeID); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException("Failed to Insert Survey Result.", e); #endregion } } public void SaveSurveyResult(List oSurveyResults, SurveyEmployee surEmp, bool IsAnnonymous, int GeneralNoticeID) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); //update the assessment date of the employee or manager. SurveyEmployeeDA.UpdateSurveyEmployee(tc, surEmp); foreach (SurveyResult oSurveyResult in oSurveyResults) { if (!IsAnnonymous) { SurveyResultDA.DeleteSurveyResult(tc, oSurveyResult.SurveyID, (int)oSurveyResult.EmployeeID, oSurveyResult.QuestionID); SurveyResultDA.InsertSurveyResult(tc, oSurveyResult); } if (getHitCount(tc, oSurveyResult.SurveyID, oSurveyResult.QuestionID, oSurveyResult.AnswerID) > 0) SurveyAnswerCountDA.UpdateSurveyAnswerCount(tc, oSurveyResult.SurveyID, oSurveyResult.QuestionID, oSurveyResult.AnswerID); else SurveyAnswerCountDA.InsertSurveyAnswerCount(tc, oSurveyResult.SurveyID, oSurveyResult.QuestionID, oSurveyResult.AnswerID); } //GeneralNoticeDA.Delete(tc, GeneralNoticeID); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException("Failed to Insert Survey Result.", e); #endregion } } public DataSet GetSurveyResultReport(int surveyID) { DataSet ds = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); ds = SurveyResultDA.GetSurveyResultReport(tc, surveyID); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException("Failed to Get Report", e); #endregion } return ds; } public void Delete(int id) { //TransactionContext tc = null; //try //{ // tc = TransactionContext.Begin(true); // SurveyResultDA.DeleteSurveyResult(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 //} } public void DeleteByCandidateID(int surveyId, int candidateId, int questionID) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); SurveyResultDA.DeleteSurveyResultByCandidateID(tc, surveyId, questionID, candidateId); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } } }