public long InsertNotification(Notification notification) { notification.CompanyID = this.companyID; try { return notificationRepository.InsertNotification(notification); } catch (Exception ex) { //Include catch blocks for specific exceptions first, //and handle or log the error as appropriate in each. //Include a generic catch block like this one last. throw ex; } }
public long InsertNotification(Notification notification) { context.Entry(notification).State = EntityState.Added; SaveChanges(); return notification.NotificationID; }
/// <summary> /// /// </summary> /// <param name="parentType">Module name</param> /// <param name="parentID">Module primary key</param> /// <param name="notificationType">1.Email 2.SMS 3.Call</param> /// <param name="toUser">Receiver</param> /// <param name="templateID">1.Activation Email 2.Task assignment</param> /// <param name="templateValues">List of values to be replaced</param> public static void Notify(string parentType, long parentID, int notificationType, string toUser, int templateID, IDictionary templateValues) { NotificationBL notificationBL = new NotificationBL(); C3App.DAL.Notification notification = new C3App.DAL.Notification(); notification.Status = 1; notification.ParentType = parentType; notification.ParentID = parentID; notification.CreatedBy = Convert.ToInt64(HttpContext.Current.Session["UserID"]); notification.CreatedTime = DateTime.Now; string body = String.Empty; long notificationID; switch (notificationType) { case 1: notification.NotificationTypeID = 1; notificationID = notificationBL.InsertNotification(notification); Email email = new Email(); email.Subject = "System-generated Mail"; email.FromAddress = ConfigurationManager.AppSettings["FromEmail"].ToString(); email.FromName = "Panacea Systems Ltd"; email.ToAddress = toUser; email.Status = true; email.DateStart = DateTime.Now; email.ParentType = parentType; email.ParentID = parentID; email.AssignedUserID = Convert.ToInt64(HttpContext.Current.Session["UserID"]); email.NotificationID = notificationID; email.CreatedBy = Convert.ToInt64(HttpContext.Current.Session["UserID"]); email.CreatedTime = DateTime.Now; EmailTemplateBL emailTemplateBL = new EmailTemplateBL(); EmailTemplate emailTemplate = new EmailTemplate(); emailTemplate = emailTemplateBL.GetEmailTemplateByID(templateID).FirstOrDefault(); body = emailTemplate.BodyHTML; foreach (DictionaryEntry de in templateValues) { body = body.Replace(de.Key.ToString(), de.Value.ToString()); } email.BodyHTML = body; EmailBL emailBL = new EmailBL(); emailBL.InsertEmail(email); SendEmail(toUser,emailTemplate.Subject, body); break; case 2: notification.NotificationTypeID = 2; notificationID = notificationBL.InsertNotification(notification); ShortMessage shortMessage = new ShortMessage(); shortMessage.FromNumber = "Panacea"; shortMessage.ToNumber = toUser; shortMessage.Type = "General"; shortMessage.Status = 1; shortMessage.ParentType = parentType; shortMessage.ParentID = parentID; shortMessage.NotificationID = notificationID; shortMessage.CreatedBy = Convert.ToInt64(HttpContext.Current.Session["UserID"]); shortMessage.CreatedTime = DateTime.Now; ShortMessageTemplateBL shortMessageTemplateBL = new ShortMessageTemplateBL(); ShortMessageTemplate shortMessageTemplate = new ShortMessageTemplate(); shortMessageTemplate = shortMessageTemplateBL.GetShortMessageTemplateByID(templateID).FirstOrDefault(); body = shortMessageTemplate.Message; foreach (DictionaryEntry de in templateValues) { body = body.Replace(de.Key.ToString(), de.Value.ToString()); } shortMessage.Body = body; ShortMessageBL shortMessageBL = new ShortMessageBL(); shortMessageBL.InsertOrUpdateShortMessage(shortMessage); SendSMS(toUser, shortMessage.Body); break; case 3: notification.NotificationTypeID = 3; break; default: break; } }