using System.Web.Http.Filters; using Umbraco.Core.Events; using Umbraco.Web.Models.ContentEditing; namespace Umbraco.Web.Editors { /// /// Used to emit events for editor models in the back office /// public sealed class EditorModelEventManager { public static event TypedEventHandler> SendingContentModel; public static event TypedEventHandler> SendingMediaModel; public static event TypedEventHandler> SendingMemberModel; public static event TypedEventHandler> SendingUserModel; private static void OnSendingUserModel(HttpActionExecutedContext sender, EditorModelEventArgs e) { var handler = SendingUserModel; if (handler != null) handler(sender, e); } private static void OnSendingContentModel(HttpActionExecutedContext sender, EditorModelEventArgs e) { var handler = SendingContentModel; if (handler != null) handler(sender, e); } private static void OnSendingMediaModel(HttpActionExecutedContext sender, EditorModelEventArgs e) { var handler = SendingMediaModel; if (handler != null) handler(sender, e); } private static void OnSendingMemberModel(HttpActionExecutedContext sender, EditorModelEventArgs e) { var handler = SendingMemberModel; if (handler != null) handler(sender, e); } /// /// Based on the type, emit's a specific event /// /// /// internal static void EmitEvent(HttpActionExecutedContext sender, EditorModelEventArgs e) { var contentItemDisplay = e.Model as ContentItemDisplay; if (contentItemDisplay != null) { OnSendingContentModel(sender, new EditorModelEventArgs(e)); } var mediaItemDisplay = e.Model as MediaItemDisplay; if (mediaItemDisplay != null) { OnSendingMediaModel(sender, new EditorModelEventArgs(e)); } var memberItemDisplay = e.Model as MemberDisplay; if (memberItemDisplay != null) { OnSendingMemberModel(sender, new EditorModelEventArgs(e)); } var userDisplay = e.Model as UserDisplay; if (userDisplay != null) { OnSendingUserModel(sender, new EditorModelEventArgs(e)); } } } }