using System; namespace DTS.Common.Attributes { public class ProgrammableTriggersAttribute : Attribute { public bool PreTrigger { get; set; } public bool PostTrigger { get; set; } public ProgrammableTriggersAttribute(bool preTrigger, bool postTrigger) { PreTrigger = preTrigger; PostTrigger = postTrigger; } public static bool IsPreTriggerProgrammable(Enum value) { var fi = value.GetType().GetField(value.ToString()); var attributes = fi.GetCustomAttributes(typeof(ProgrammableTriggersAttribute), false); if (attributes.Length > 0) { if (attributes[0] is ProgrammableTriggersAttribute attr) { return attr.PreTrigger; } } return true; } public static bool IsPostTriggerProgrammable(Enum value) { var fi = value.GetType().GetField(value.ToString()); var attributes = fi.GetCustomAttributes(typeof(ProgrammableTriggersAttribute), false); if (attributes.Length > 0) { if (attributes[0] is ProgrammableTriggersAttribute attr) { return attr.PostTrigger; } } return true; } } }