/// <summary> /// Gets from database. /// </summary> /// <param name="key">The key.</param> /// <param name="subject">The subject.</param> /// <param name="body">The body.</param> /// <returns></returns> private static bool GetFromDatabase(string key, out string subject, out string body) { bool ret = false; subject = string.Empty; body = string.Empty; using (IDataReader reader = DbAlert2.TemplateGet(key)) { if (reader.Read()) { subject = reader["Subject"].ToString(); body = reader["Body"].ToString(); // OZ: 2009-02-02 Process Global Subject Template subject = ApplyGlobalSubjectTemplate(subject); ret = true; } } return(ret); }
public static void ResetTemplate(string locale, string name) { // TODO: Check if user is admin. DbAlert2.TemplateDelete(string.Format("{0}|{1}", locale, name)); }
public static void UpdateTemplate(string locale, string name, string subject, string body) { // TODO: Check if user is admin. DbAlert2.TemplateUpdate(string.Format("{0}|{1}", locale, name), subject, body); }
private static void SendReminder(DateTypes dateType, ObjectTypes objecType, int?objectId, Guid?objectUid, List <int> users) { // TODO: Step 0. Check Security (Not implemented yet) // Step 1. Calculate variables foreach (int userId in users) { int reminderType = 0; using (IDataReader reader = User.GetUserPreferences(userId)) { if (reader.Read()) { reminderType = (int)reader["ReminderType"]; } } if (reminderType != 0) { // Step 2. Get Message Template ReminderTemplate tmpl = Reminder.GetMessageTemplate(dateType, User.GetUserLanguage(userId)); // Step 2.1. Calculate Variables ArrayList vars = new ArrayList(); Alerts2.GetObjectVariables(objecType, objectId, objectUid, false, Reminder.GetVariables(dateType), vars); // Step 3. Replace variables and GetMessage Alerts2.Message msg = Reminder.GetMessage(tmpl, objectId, objectUid, objecType, userId, (VariableInfo[])vars.ToArray(typeof(VariableInfo))); // Step 4. Save to log using (DbTransaction tran = DbTransaction.Begin()) { int logId = DbAlert2.MessageLogAdd(msg.Subject, msg.Body); DBSystemEvents.RecipientUpdateSend(userId, (reminderType & 1) != 0, PortalConfig.UseIM && (reminderType & 2) != 0, logId); // IsNotifiedByEmail, IsNotifiedByIBN tran.Commit(); } #region -- Send via Email -- // Step 5. Send via Email try { if ((reminderType & 1) != 0) //IsNotifiedByEmail { string body = "<html><head><meta http-equiv=Content-Type content=\"text/html; charset=utf-8\" /></head><body>" + msg.Body + "</body></html>"; using (DbTransaction tran = DbTransaction.Begin()) { Alerts2.SendMessage(DeliveryType.Email, Reminder.GetAddress(DeliveryType.Email, userId), body, msg.Subject); DBSystemEvents.RecipientUpdateSent(userId, (int)DeliveryType.Email, true); tran.Commit(); } } } catch (Exception ex) { Log.WriteError(ex.ToString()); } #endregion #region -- Send via IM -- // Step 6. Send via IM try { if ((reminderType & 2) != 0) //uInfo != null && uInfo.IsNotifiedByIBN) { using (DbTransaction tran = DbTransaction.Begin()) { Alerts2.SendMessage(DeliveryType.IBN, Reminder.GetAddress(DeliveryType.IBN, userId), msg.Body, msg.Subject); DBSystemEvents.RecipientUpdateSent(userId, (int)DeliveryType.IBN, true); tran.Commit(); } } } catch (Exception ex) { Log.WriteError(ex.ToString()); } #endregion } } }