Documentation Center

Notification broadcasting Event Handler example

To broadcast a notification about an Event occurring, to be picked up by, for example, an extension to an SDL Tridion Sites GUI, create an Event Handler that uses the BroadcastNotification method of the NotificationManager class.

The following example broadcasts a notification whenever a Component gets deleted, announcing that the Component was deleted, and by whom. Note the use of the Tridion.ContentManager.Notifications namespace.

using System;
using System.Text;
using Tridion.ContentManager.Extensibility.Events;
using Tridion.ContentManager.Extensibility;
using Tridion.ContentManager.ContentManagement;
using Tridion.ContentManager.Notifications;
 
namespace MyEventHandlers
{
    [TcmExtension("MyEventHandlerExtension")]
    public class MyEventHandler : TcmExtension
    {
        public MyEventHandler()
        {
            Subscribe();
        }
 
        public void Subscribe()
        {
            EventSystem.Subscribe<Component, DeleteEventArgs>(HandlerForCommitted, EventPhases.TransactionCommitted);
        }
 
        private void HandlerForCommitted(Component subject, DeleteEventArgs args, EventPhases phase)
        {
            var session = subject.Session;
            var message = new NotificationMessage 
            {
                Action = "Delete",
                SubjectIds = new[] { subject.Id.ToString() },
                Details = string.Format("Component was deleted by {0}", session.User.Description)
            };
 
            session.NotificationsManager.BroadcastNotification(message);
        }
    }
}