45 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|