using System; namespace Umbraco.Cms.Core.Events { public class EventDefinition : EventDefinitionBase { private readonly EventHandler _trackedEvent; private readonly object _sender; private readonly EventArgs _args; public EventDefinition(EventHandler trackedEvent, object sender, EventArgs args, string? eventName = null) : base(sender, args, eventName) { _trackedEvent = trackedEvent; _sender = sender; _args = args; } public override void RaiseEvent() { if (_trackedEvent != null) { _trackedEvent(_sender, _args); } } } public class EventDefinition : EventDefinitionBase { private readonly EventHandler _trackedEvent; private readonly object _sender; private readonly TEventArgs? _args; public EventDefinition(EventHandler trackedEvent, object sender, TEventArgs? args, string? eventName = null) : base(sender, args, eventName) { _trackedEvent = trackedEvent; _sender = sender; _args = args; } public override void RaiseEvent() { if (_trackedEvent != null) { _trackedEvent(_sender, _args); } } } public class EventDefinition : EventDefinitionBase { private readonly TypedEventHandler _trackedEvent; private readonly TSender? _sender; private readonly TEventArgs _args; public EventDefinition(TypedEventHandler trackedEvent, TSender? sender, TEventArgs args, string? eventName = null) : base(sender, args, eventName) { _trackedEvent = trackedEvent; _sender = sender; _args = args; } public override void RaiseEvent() { if (_trackedEvent != null) { _trackedEvent(_sender, _args); } } } }