Esempio n. 1
0
        public static bool TryParse <TEnumeration>(Func <TEnumeration, bool> predicate, out TEnumeration enumeration) where TEnumeration : Enumeration
        {
            enumeration = GetAll <TEnumeration>().FirstOrDefault(predicate);

            if (!(enumeration is null))
            {
                return(true);
            }

            enumeration = ClassConstructionHelper.Construct <TEnumeration>(null, null);
            return(false);
        }
Esempio n. 2
0
        public static bool TryParse <TEnumeration>(Func <TEnumeration, bool> predicate, int defaultValue, out TEnumeration enumeration) where TEnumeration : Enumeration
        {
            enumeration = GetAll <TEnumeration>().FirstOrDefault(predicate);

            if (!(enumeration is null))
            {
                return(true);
            }

            var types  = new[] { typeof(int), typeof(string) };
            var values = new object[] { defaultValue, null };

            enumeration = ClassConstructionHelper.Construct <TEnumeration>(types, values);
            return(false);
        }
Esempio n. 3
0
        public static IEnumerable <TEnumeration> GetAll <TEnumeration>() where TEnumeration : Enumeration
        {
            var type   = typeof(TEnumeration);
            var fields = type.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly);

            foreach (var info in fields)
            {
                var instance = ClassConstructionHelper.Construct <TEnumeration>(null, null);

                if (info.GetValue(instance) is TEnumeration locatedValue)
                {
                    yield return(locatedValue);
                }
            }
        }