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); } } }
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)); }
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)); }