using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using xVal.ServerSide; namespace Wierszowki.Services { internal static class DataAnnotationsValidationRunner { public static IEnumerable GetErrors(object instance) { return from prop in TypeDescriptor.GetProperties(instance).Cast() from attribute in prop.Attributes.OfType() where !attribute.IsValid(prop.GetValue(instance)) select new ErrorInfo(prop.Name, attribute.FormatErrorMessage(string.Empty), instance); } } }