Exemplo n.º 1
0
        private void GetConfigFieldsRecursively(string path, object obj, List <IConfigField> fields)
        {
            foreach (FieldInfo fieldInfo in obj.GetType().GetFields())
            {
                if (!fieldInfo.IsPublic)
                {
                    continue;
                }

                string extendedPath = CreateOrExtendPath(path, fieldInfo.Name);

                if (fieldInfo.FieldType.IsEnum)
                {
                    // TODO
                    continue;
                }

                if (PrimitiveToActionMap.TryGetValue(fieldInfo.FieldType, out Func <object, FieldInfo, string, IConfigField> func))
                {
                    IConfigField configField = func(obj, fieldInfo, extendedPath);
                    fields.Add(configField);
                }
                else
                {
                    object fieldObject = fieldInfo.GetValue(obj);
                    GetConfigFieldsRecursively(extendedPath, fieldObject, fields);
                }
            }
        }
Exemplo n.º 2
0
        public static EmailValidator CreateValidator(string wrapperName, string fieldName)
        {
            ConfigManager cm    = new ConfigManager();
            IConfigField  field = cm.GetAbstractValidatorByName(wrapperName, fieldName);

            if (field == null)
            {
                return(new EmailValidator(false));
            }
            return(new EmailValidator(field.Required, field.ResourceKey));
        }
Exemplo n.º 3
0
        public static TextValidator CreateValidator(string wrapperName, string fieldName)
        {
            ConfigManager cm    = new ConfigManager();
            IConfigField  field = cm.GetAbstractValidatorByName(wrapperName, fieldName);

            if (field == null)
            {
                return(new TextValidator(false));
            }
            return(new TextValidator(field.Required, field.ResourceKey, field.RegularExpression, field.MinLength, field.MaxLength, field.PreventXSS));
        }