public string GetPropertyError(ValidationViewModelBase itm, string propertyName) { if (!this.propertyGetters.ContainsKey(propertyName)) { return(string.Empty); } var propertyValue = this.propertyGetters[propertyName](itm); var errormessages = new List <string>(); if (this.validators.ContainsKey(propertyName)) { errormessages.AddRange(this.validators[propertyName] .Where(v => !v.IsValid(propertyValue)) .Select(v => v.ErrorMessage)); } if (this.instanceValidators.ContainsKey(propertyName)) { errormessages.AddRange(this.instanceValidators[propertyName] .Where(v => !v.IsValid(itm, propertyValue)) .Select(v => v.ErrorMessage)); } return(string.Join(Environment.NewLine, errormessages)); }
public int GetValidPropertiesCount(ValidationViewModelBase itm) { var query = new List <object>(); query.AddRange( from validator in this.validators where validator.Value.All(attribute => attribute.IsValid(this.propertyGetters[validator.Key](itm))) select validator.Value); query.AddRange( from validator in this.instanceValidators where validator.Value.All( attribute => attribute.IsValid(itm, this.propertyGetters[validator.Key](itm))) select validator.Value); return(query.Count()); }
public string GetError(ValidationViewModelBase itm) { var errors = new List <string>(); errors.AddRange( from validator in this.validators from attribute in validator.Value where !attribute.IsValid(this.propertyGetters[validator.Key](itm)) select attribute.ErrorMessage); errors.AddRange( from validator in this.instanceValidators from attribute in validator.Value where !attribute.IsValid(itm, this.propertyGetters[validator.Key](itm)) select attribute.ErrorMessage); errors.AddRange( from validator in this.classValidators where !validator.IsValid(itm) select validator.ErrorMessage); return(string.Join(Environment.NewLine, errors)); }