Pokaż
Ignoruj:
Data:
2009-10-02 13:15:40 (17 years ago)
Autor:
alina
Opis:

fix #207, #193, #205

Pliki:
1 zmodyfikowane

Legenda:

Bez zmian
Dodane
Usunięte
  • trunk/Wierszowki/Wierszowki.Services/DataAnnotationsValidationRunner.cs

    r752 r842  
    1212    { 
    1313        public static IEnumerable<ErrorInfo> GetErrors(object instance) 
    14         { 
    15             return from prop in TypeDescriptor.GetProperties(instance).Cast<PropertyDescriptor>() 
     14        {    
     15            List<ErrorInfo> errors = new List<ErrorInfo>(); 
     16 
     17                IEnumerable<PropertyDescriptor> properties = TypeDescriptor.GetProperties(instance).Cast<PropertyDescriptor>(); 
     18                foreach (PropertyDescriptor prop in properties) { 
     19                    IEnumerable<ValidationAttribute> attributes = prop.Attributes.OfType<ValidationAttribute>(); 
     20 
     21                int empty = 2; 
     22                object pom = prop.GetValue(instance); 
     23                if (pom != null) 
     24                { 
     25                    object typek = pom.GetType(); 
     26                    if (pom.GetType().Name == "Int32") 
     27                    { 
     28                        empty = Convert.ToInt32(pom); 
     29                    } 
     30                }                                 
     31                foreach (ValidationAttribute attribute in attributes) { 
     32                        if (!attribute.IsValid(prop.GetValue(instance)) || empty == 0) { 
     33                            errors.Add(new ErrorInfo(prop.Name, attribute.FormatErrorMessage(string.Empty), instance)); 
     34                        } 
     35                    } 
     36                } 
     37                return errors; 
     38            /* return from prop in TypeDescriptor.GetProperties(instance).Cast<PropertyDescriptor>() 
    1639                   from attribute in prop.Attributes.OfType<ValidationAttribute>() 
    1740                   where !attribute.IsValid(prop.GetValue(instance)) 
    1841                   select new ErrorInfo(prop.Name, attribute.FormatErrorMessage(string.Empty), instance); 
     42            */ 
    1943        } 
    2044    }