/// <summary> /// Logs a <see cref="WellKnownEventLogEventsEnum"/> provided it is a cumulated event (e.g. all roles added or roles removed) to CMS event log. /// </summary> /// <remarks> /// Provided <paramref name="event"/> determines all the description and source and event code of the event log entry. /// </remarks> /// <param name="names">Names of items (i.e. roles or users) that were added or removed or updated.</param> /// <param name="event">Type of event to log</param> /// <param name="descriptionArguments">Arguments required for correct event description composition (e.g user name for certain <paramref name="event"/> types – i.e. <see cref="WellKnownEventLogEventsEnum.UserAddedToRoles"/> and <see cref="WellKnownEventLogEventsEnum.UserRemovedFromRoles"/>)</param> internal static void LogCumulativeWellKnownEvent(this ICollection <string> names, WellKnownEventLogEventsEnum @event, params object[] descriptionArguments) { // No names, no event in the log if (!names.Any()) { return; } // Compose event message based on eventCode var eventProperties = WELL_KNOWN_EVENT_PROPERTIES[@event]; var namesFormatted = String.Join("," + Environment.NewLine, names.Where(name => name != null)); var eventDescription = (eventProperties.DescriptionContainsFormattingItems ? String.Format(eventProperties.Description, descriptionArguments) : eventProperties.Description) + Environment.NewLine + Environment.NewLine + namesFormatted; // Write down the log Service.Resolve <IEventLogService>().LogInformation( eventProperties.Source, eventProperties.EventCode, eventDescription); }
/// <summary> /// Creates new instance of <see cref="CumulatedChanges"/> /// </summary> /// <param name="created"><see cref="CMS.EventLog.EventLogInfo"/> event type to be logged for created items (i.e. <see cref="WellKnownEventLogEventsEnum.UsersCreated"/> or <see cref="WellKnownEventLogEventsEnum.RolesCreated"/>)</param> /// <param name="updated"><see cref="CMS.EventLog.EventLogInfo"/> event type to be logged for updated items (i.e. <see cref="WellKnownEventLogEventsEnum.UsersUpdated"/> or <see cref="WellKnownEventLogEventsEnum.RolesUpdated"/>)</param> /// <param name="deleted"><see cref="CMS.EventLog.EventLogInfo"/> event type to be logged for deleted items (i.e. <see cref="WellKnownEventLogEventsEnum.UsersDeleted"/> or <see cref="WellKnownEventLogEventsEnum.RolesDeleted"/>)</param> public CumulatedChanges(WellKnownEventLogEventsEnum created, WellKnownEventLogEventsEnum updated, WellKnownEventLogEventsEnum deleted) { mCreated = created; mUpdated = updated; mDeleted = deleted; }