diff --git a/src/Umbraco.Core/Events/EventExtensions.cs b/src/Umbraco.Core/Events/EventExtensions.cs index bd5a3445f6..540a0ad7b8 100644 --- a/src/Umbraco.Core/Events/EventExtensions.cs +++ b/src/Umbraco.Core/Events/EventExtensions.cs @@ -28,8 +28,10 @@ namespace Umbraco.Core.Events { var evtArgs = args(evtMsgs); - if (eventHandler != null) + if (eventHandler != null) + { eventHandler(sender, evtArgs); + } return evtArgs.Cancel; } @@ -55,15 +57,38 @@ namespace Umbraco.Core.Events return args.Cancel; } - /// - /// Raises the event - /// - /// - /// - /// - /// - /// - public static void RaiseEvent( + /// + /// Raises the event with EventMessages + /// + /// + /// + /// + /// + /// + /// + public static void RaiseEvent( + this TypedEventHandler eventHandler, + EventMessages evtMsgs, + Func args, + TSender sender) + where TArgs : EventArgs + { + if (eventHandler != null) + { + var evtArgs = args(evtMsgs); + eventHandler(sender, evtArgs); + } + } + + /// + /// Raises the event + /// + /// + /// + /// + /// + /// + public static void RaiseEvent( this TypedEventHandler eventHandler, TArgs args, TSender sender) diff --git a/src/Umbraco.Core/Services/ContentService.cs b/src/Umbraco.Core/Services/ContentService.cs index 57073731a7..00d422d57c 100644 --- a/src/Umbraco.Core/Services/ContentService.cs +++ b/src/Umbraco.Core/Services/ContentService.cs @@ -1002,7 +1002,7 @@ namespace Umbraco.Core.Services } if (raiseEvents) - Saved.RaiseEvent(new SaveEventArgs(asArray, false), this); + Saved.RaiseEvent(EventMessagesFactory.Get(), messages => new SaveEventArgs(asArray, false, messages), this); Audit(AuditType.Save, "Bulk Save content performed by user", userId == -1 ? 0 : userId, Constants.System.Root); @@ -1868,7 +1868,7 @@ namespace Umbraco.Core.Services } if (raiseEvents) - Saved.RaiseEvent(new SaveEventArgs(content, false), this); + Saved.RaiseEvent(EventMessagesFactory.Get(), messages => new SaveEventArgs(content, false, messages), this); //Save xml to db and call following method to fire event through PublishingStrategy to update cache if (published) @@ -1934,7 +1934,7 @@ namespace Umbraco.Core.Services } if (raiseEvents) - Saved.RaiseEvent(new SaveEventArgs(content, false), this); + Saved.RaiseEvent(EventMessagesFactory.Get(), messages => new SaveEventArgs(content, false, messages), this); Audit(AuditType.Save, "Save Content performed by user", userId, content.Id); diff --git a/src/Umbraco.Core/Services/MediaService.cs b/src/Umbraco.Core/Services/MediaService.cs index f14d374fe8..473f808377 100644 --- a/src/Umbraco.Core/Services/MediaService.cs +++ b/src/Umbraco.Core/Services/MediaService.cs @@ -989,7 +989,7 @@ namespace Umbraco.Core.Services } if (raiseEvents) - Saved.RaiseEvent(new SaveEventArgs(media, false), this); + Saved.RaiseEvent(EventMessagesFactory.Get(), messages => new SaveEventArgs(media, false, messages), this); Audit(AuditType.Save, "Save Media performed by user", userId, media.Id); @@ -1037,7 +1037,7 @@ namespace Umbraco.Core.Services } if (raiseEvents) - Saved.RaiseEvent(new SaveEventArgs(asArray, false), this); + Saved.RaiseEvent(EventMessagesFactory.Get(), messages => new SaveEventArgs(asArray, false, messages), this); Audit(AuditType.Save, "Save Media items performed by user", userId, -1);