using System.ComponentModel;
namespace Core.Common.Utils.Aop
{
///
/// Settings for EntityAttribute behavior
///
/// Seperate class from EntityAttribute to remove need to reference PostSharp if you just want to check/modify these fields
public static class EventSettings
{
public static bool BubblingEnabled = true;
public static bool EnableLogging = false;
public static object LastEventBubbler;
#region Global Helpers
public static void FirePropertyChanging(object lastSender, object originalSender,
PropertyChangingEventArgs args,
PropertyChangingEventHandler fireAction)
{
if (fireAction == null)
{
return;
}
var previousSender = LastEventBubbler;
LastEventBubbler = lastSender;
try
{
fireAction(originalSender, args);
}
finally
{
LastEventBubbler = previousSender;
}
}
public static void FirePropertyChanged(object lastSender, object originalSender,
PropertyChangedEventArgs args,
PropertyChangedEventHandler fireAction)
{
if (fireAction == null)
{
return;
}
var previousSender = LastEventBubbler;
LastEventBubbler = lastSender;
try
{
fireAction(originalSender, args);
}
finally
{
LastEventBubbler = previousSender;
}
}
#endregion
}
}