public static void UnsubscribePersonalForObject(int EventTypeId, int ObjectId) { DBSystemEvents.UnsubscribePersonalForObject(EventTypeId, Security.CurrentUser.UserID, ObjectId); }
/// <summary> /// EventTypeId, ParentId, ObjectTypeId, RelObjectTypeId, Title, IsActive /// </summary> /// <returns></returns> public static IDataReader GetSystemEventType(int EventTypeId) { return(DBSystemEvents.GetSystemEventType(EventTypeId)); }
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 } } }