private static List <CustomABOperationProviderInfo> BuildCustomABOperationProviderList()
        {
            var list = new List <CustomABOperationProviderInfo>();

            var nodes = Assembly
                        .GetExecutingAssembly()
                        .GetTypes()
                        .Where(t => t != typeof(ABOperationProvider))
                        .Where(t => typeof(ABOperationProvider).IsAssignableFrom(t));

            foreach (var type in nodes)
            {
                CustomABOperationProvider attr =
                    type.GetCustomAttributes(typeof(CustomABOperationProvider), false).FirstOrDefault() as CustomABOperationProvider;

                if (attr != null)
                {
                    list.Add(new CustomABOperationProviderInfo(type, attr));
                }
            }

            list.Sort();

            return(list);
        }
        public static bool HasValidCustomABOperationProviderAttribute(Type t)
        {
            CustomABOperationProvider attr =
                t.GetCustomAttributes(typeof(CustomABOperationProvider), false).FirstOrDefault() as CustomABOperationProvider;

            return(attr != null && !string.IsNullOrEmpty(attr.Name));
        }
        public static string GetABOperationProviderName(ABOperationProvider provider)
        {
            CustomABOperationProvider attr =
                provider.GetType().GetCustomAttributes(typeof(CustomABOperationProvider), false).FirstOrDefault() as CustomABOperationProvider;

            if (attr != null)
            {
                return(attr.Name);
            }
            return(string.Empty);
        }
        public static int GetABOperationProviderOrderPriority(string className)
        {
            var type = Type.GetType(className);

            if (type != null)
            {
                CustomABOperationProvider attr =
                    Type.GetType(className).GetCustomAttributes(typeof(CustomABOperationProvider), false).FirstOrDefault() as CustomABOperationProvider;
                if (attr != null)
                {
                    return(attr.OrderPriority);
                }
            }
            return(CustomABOperationProvider.kDEFAULT_PRIORITY);
        }
        public static string GetABOperationProviderName(string className)
        {
            var type = Type.GetType(className);

            if (type != null)
            {
                CustomABOperationProvider attr =
                    Type.GetType(className).GetCustomAttributes(typeof(CustomABOperationProvider), false).FirstOrDefault() as CustomABOperationProvider;
                if (attr != null)
                {
                    return(attr.Name);
                }
            }
            return(string.Empty);
        }
 public CustomABOperationProviderInfo(Type t, CustomABOperationProvider p)
 {
     provider = p;
     type     = t;
 }