95 lines
1.9 KiB
C#
95 lines
1.9 KiB
C#
|
using System;
|
||
|
|
||
|
namespace Aitex.Core.Util
|
||
|
{
|
||
|
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
|
||
|
public class SubscriptionAttribute : Attribute
|
||
|
{
|
||
|
public enum FLAG
|
||
|
{
|
||
|
SaveDB = 0,
|
||
|
IgnoreSaveDB = 1
|
||
|
}
|
||
|
|
||
|
public readonly string Key;
|
||
|
|
||
|
public readonly string Method;
|
||
|
|
||
|
public readonly int Flag;
|
||
|
|
||
|
public string ModuleKey => string.IsNullOrEmpty(Module) ? Key : (Module + "." + Key);
|
||
|
|
||
|
public string Module { get; internal set; }
|
||
|
|
||
|
public SubscriptionAttribute(string key, int flag = 0, string module = "")
|
||
|
{
|
||
|
if (string.IsNullOrWhiteSpace(key))
|
||
|
{
|
||
|
throw new ArgumentNullException("key");
|
||
|
}
|
||
|
Key = key;
|
||
|
Flag = flag;
|
||
|
Module = module;
|
||
|
}
|
||
|
|
||
|
public SubscriptionAttribute(string key, string module)
|
||
|
{
|
||
|
if (string.IsNullOrWhiteSpace(key))
|
||
|
{
|
||
|
throw new ArgumentNullException("key");
|
||
|
}
|
||
|
Key = key;
|
||
|
Flag = 0;
|
||
|
Module = module;
|
||
|
}
|
||
|
|
||
|
public SubscriptionAttribute(object key, string module)
|
||
|
{
|
||
|
if (string.IsNullOrWhiteSpace(key.ToString()))
|
||
|
{
|
||
|
throw new ArgumentNullException("key");
|
||
|
}
|
||
|
Key = key.ToString();
|
||
|
Flag = 1;
|
||
|
Module = module;
|
||
|
}
|
||
|
|
||
|
public SubscriptionAttribute(object key)
|
||
|
{
|
||
|
if (string.IsNullOrWhiteSpace(key.ToString()))
|
||
|
{
|
||
|
throw new ArgumentNullException("key");
|
||
|
}
|
||
|
Key = key.ToString();
|
||
|
Flag = 1;
|
||
|
Module = "";
|
||
|
}
|
||
|
|
||
|
public void SetModule(string module)
|
||
|
{
|
||
|
Module = module;
|
||
|
}
|
||
|
|
||
|
public SubscriptionAttribute(string key, string module, string deviceName, string deviceType)
|
||
|
{
|
||
|
if (string.IsNullOrWhiteSpace(key))
|
||
|
{
|
||
|
throw new ArgumentNullException("key");
|
||
|
}
|
||
|
Key = $"{deviceType}.{deviceName}.{key}";
|
||
|
Flag = 0;
|
||
|
Module = module;
|
||
|
}
|
||
|
|
||
|
public SubscriptionAttribute(string module, string method, params object[] args)
|
||
|
{
|
||
|
if (string.IsNullOrWhiteSpace(module))
|
||
|
{
|
||
|
throw new ArgumentNullException("module");
|
||
|
}
|
||
|
Module = module;
|
||
|
Method = method;
|
||
|
}
|
||
|
}
|
||
|
}
|