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 NotificationService : ServiceTemplate //{ // #region Map Objects // #region Map Parent // private void MapObject(Notification oNotification, DataReader oReader) // { // base.SetObjectID(oNotification, (oReader.GetInt32("NotificationID").Value)); // oNotification.Subject = oReader.GetString("Subject"); // oNotification.Body = oReader.GetString("Body"); // oNotification.TagOutputID = oReader.GetInt32("TagOutputID",0); // oNotification.ObjectID = oReader.GetInt32("ObjectID",0); // oNotification.OptionalObjectID = oReader.GetInt32("OptionalObjectID",0); // oNotification.Attachment = oReader.GetString("Attachment"); // oNotification.Footer = oReader.GetString("Footer"); // oNotification.Type = (EnumNotificationType)oReader.GetInt32("Type"); // //oNotification.Medium = (EnumNotificationMedium) oReader.GetInt32("Medium"); // oNotification.IsMailNf = oReader.GetBoolean("IsMailNf").Value; // oNotification.IsSMSNf = oReader.GetBoolean("IsSMSNf").Value; // oNotification.IsWebNf = oReader.GetBoolean("IsWebNf").Value; // oNotification.Status = (EnumNotificationStatus) oReader.GetInt32("Status"); // this.SetObjectState(oNotification, Ease.Core.ObjectState.Saved); // } // protected override T CreateObject(DataReader oReader) // { // Notification oNotification = new Notification(); // MapObject(oNotification, oReader); // return oNotification as T; // } // #endregion // #region Map NotificationParticipants // private void MapParticipantObject(NotificationParticipant oNotificationParticipant, DataReader oReader) // { // base.SetObjectID(oNotificationParticipant, (oReader.GetInt32("NotificationParticipantID").Value)); // oNotificationParticipant.NotificationID = oReader.GetInt32("NotificationID",0); // oNotificationParticipant.EmployeeID = oReader.GetInt32("EmployeeID",0); // oNotificationParticipant.Comments = oReader.GetString("Comments"); // oNotificationParticipant.SentTime = (DateTime) oReader.GetDateTime("SentTime"); // this.SetObjectState(oNotificationParticipant, Ease.Core.ObjectState.Saved); // } // private NotificationParticipant CreateParticipant(DataReader oReader) // { // NotificationParticipant oNotificationParticipant = new NotificationParticipant(); // MapParticipantObject(oNotificationParticipant, oReader); // return oNotificationParticipant; // } // private List CreateParticipants(DataReader oReader) // { // List oNotificationParticipants = new List(); // NotificationParticipant oNotificationParticipant; // while (oReader.Read()) // { // oNotificationParticipant = new NotificationParticipant(); // oNotificationParticipant = CreateParticipant(oReader); // oNotificationParticipants.Add(oNotificationParticipant); // } // return oNotificationParticipants; // } // #endregion // #region Map NotificationRule // private void MapNotificationRuleObject(NotificationRule oNotificationRule, DataReader oReader) // { // base.SetObjectID(oNotificationRule, (oReader.GetInt32("NotificationRuleID").Value)); // oNotificationRule.BatchNo = oReader.GetInt32("BatchNo").Value; // oNotificationRule.NotificationID = oReader.GetInt32("NotificationID",0); // oNotificationRule.PerticipantID = oReader.GetInt32("PerticipantID",0); // oNotificationRule.PerticipantType = (EnumPerticipantType) oReader.GetInt32("PerticipantType"); // oNotificationRule.SendDate = oReader.GetDateTime("SendDate").Value; // oNotificationRule.ExtendedBody = oReader.GetString("ExtendedBody"); // oNotificationRule.Remarks = oReader.GetString("Remarks"); // oNotificationRule.EmailSendStatus = (EnumSendStatus)oReader.GetInt32("EmailSendStatus"); // oNotificationRule.WebSendStatus = (EnumSendStatus)oReader.GetInt32("WebSendStatus"); // oNotificationRule.SMSSendStatus = (EnumSendStatus)oReader.GetInt32("SMSSendStatus"); // oNotificationRule.AllowWrite = (bool)oReader.GetBoolean("AllowWrite"); // this.SetObjectState(oNotificationRule, Ease.Core.ObjectState.Saved); // } // private NotificationRule CreateNotificationRule(DataReader oReader) // { // NotificationRule oNotificationRule = new NotificationRule(); // MapNotificationRuleObject(oNotificationRule, oReader); // return oNotificationRule; // } // private List CreateNotificationRules(DataReader oReader) // { // List oCreateNotificationRules = new List(); // NotificationRule oCreateNotificationRule; // while (oReader.Read()) // { // oCreateNotificationRule = CreateNotificationRule(oReader); // oCreateNotificationRules.Add(oCreateNotificationRule); // } // return oCreateNotificationRules; // } // #endregion // #endregion // #region Implementation of INotificationService // #region Get Functions // public int GetNewID() // { // TransactionContext tc = null; // tc = TransactionContext.Begin(true); // try // { // return tc.GenerateID("Notification", "NotificationID"); // } // catch (Exception e) // { // throw e; // } // finally // { // tc.End(); // } // } // public Notification Get(int id) // { // Notification oNotification = null; // TransactionContext tc = null; // try // { // tc = TransactionContext.Begin(); // DataReader oreader = new DataReader(NotificationDA.Get(tc,id)); // if(oreader.Read()) // { // oNotification = 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 oNotification; // } // public List Get() // { // List oNotifications = new List(); // TransactionContext tc = null; // try // { // tc = TransactionContext.Begin(); // DataReader oreader = new DataReader(NotificationDA.Get(tc)); // oNotifications = 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 oNotifications; // } // public List Get(EnumNotificationStatus status) // { // List oNotifications = new List(); // TransactionContext tc = null; // try // { // tc = TransactionContext.Begin(); // DataReader oreader = new DataReader(NotificationDA.Get(tc,status)); // oNotifications = 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 oNotifications; // } // public List GetByDateRange(DateTime startDate, DateTime endDate) // { // List oNotifications = new List(); // TransactionContext tc = null; // try // { // tc = TransactionContext.Begin(); // DataReader oreader = new DataReader(NotificationDA.GetByDateRange(tc,startDate,endDate)); // oNotifications = 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 oNotifications; // } // public List GetNotificationParticipants(int id) // { // List oNotificationParticipants = new List(); // TransactionContext tc = null; // try // { // tc = TransactionContext.Begin(); // DataReader oreader = new DataReader(NotificationDA.GetParticipants(tc, id)); // oNotificationParticipants = CreateParticipants(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 oNotificationParticipants; // } // public List GetNotificationRules(int id) // { // List oCreateNotificationRules = new List(); // TransactionContext tc = null; // try // { // tc = TransactionContext.Begin(); // DataReader oreader = new DataReader(NotificationDA.GetNotificationRules(tc, id)); // oCreateNotificationRules = CreateNotificationRules(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 oCreateNotificationRules; // } // #endregion // #region Get Scalars // public int GetNewBatchNumber() // { // TransactionContext tc = null; // try // { // tc = TransactionContext.Begin(true); // int id = tc.GenerateID("NotificationRule", "BatchNo"); // return 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(); // } // } // private int GetNewBatchNumber(TransactionContext tc) // { // try // { // int id = tc.GenerateID("NotificationRule", "BatchNo"); // return id; // } // catch (Exception e) // { // #region Handle Exception // if (tc != null) // tc.HandleError(); // ExceptionLog.Write(e); // throw new ServiceException(e.Message, e); // #endregion // } // } // public DateTime GetMinSendDateByID(int iD) // { // TransactionContext tc = null; // try // { // tc = TransactionContext.Begin(true); // DateTime minDate = NotificationDA.GetMinDateByID(tc, iD); // return minDate; // } // 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 // public int Insert(Notification oNotification) // { // TransactionContext tc = null; // try // { // int startingBatchNo; // int previousBatchNo = 0; // tc = TransactionContext.Begin(true); // if (oNotification.IsNew) // { // int id = tc.GenerateID("Notification", "NotificationID"); // base.SetObjectID(oNotification, (id)); // NotificationDA.Insert(tc, oNotification); // startingBatchNo = GetNewBatchNumber(tc); // foreach (NotificationRule notificationRule in oNotification.NotificationRules) // { // if(previousBatchNo!=notificationRule.BatchNo && (previousBatchNo!=0)) // { // startingBatchNo++; // } // previousBatchNo = notificationRule.BatchNo; // notificationRule.BatchNo = startingBatchNo; // base.SetObjectID(notificationRule, (tc.GenerateID("NotificationRule", "NotificationRuleID"))); // notificationRule.NotificationID = (id); // NotificationDA.InsertNotificationRule(tc, notificationRule); // } // } // else // { // NotificationDA.Update(tc, oNotification); // NotificationDA.DeleteNotificationRules(tc,oNotification.ID); // startingBatchNo = GetNewBatchNumber(tc); // foreach (NotificationRule notificationRule in oNotification.NotificationRules) // { // if (previousBatchNo != notificationRule.BatchNo && (previousBatchNo != 0)) // { // startingBatchNo++; // } // previousBatchNo = notificationRule.BatchNo; // notificationRule.BatchNo = startingBatchNo; // base.SetObjectID(notificationRule, (tc.GenerateID("NotificationRule", "NotificationRuleID"))); // notificationRule.NotificationID = (oNotification.ID); // NotificationDA.InsertNotificationRule(tc, notificationRule); // } // } // return oNotification.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(); // } // } // public void SaveReply(NotificationParticipant oParticipant) // { // TransactionContext tc = null; // tc = TransactionContext.Begin(true); // try // { // if (oParticipant.IsNew) // { // int id = tc.GenerateID("NotificationParticipant", "NotificationParticipantID"); // base.SetObjectID(oParticipant, (id)); // NotificationDA.InsertReply(tc, oParticipant); // } // else // { // } // } // 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 UpdateNotificationRule(NotificationRule notfRule) // { // TransactionContext tc = null; // try // { // tc = TransactionContext.Begin(true); // NotificationDA.UpdateNotficationRule(tc, notfRule); // } // 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 Delete(int id) // { // TransactionContext tc = null; // try // { // tc = TransactionContext.Begin(true); // NotificationDA.DeleteParticipants(tc,id); // NotificationDA.DeleteNotificationRules(tc, id); // NotificationDA.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 //} }