Files
DP44/Common/DTS.Common/Attributes/ProgrammableTriggerAttributes.cs
2026-04-17 14:55:32 -04:00

45 lines
1.4 KiB
C#

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;
}
}
}