public virtual bool Validate() { ClearErrors(); var validationContext = new ValidationCommandContext(); _validationRules.Values.SelectMany(c => c).ForEach(c => c.ExecuteCommand(validationContext)); if (!validationContext.IsValid) { foreach (var validationResult in validationContext.Errors) { var propertyNames = validationResult.MemberNames.Any() ? validationResult.MemberNames : new string[] { "" }; foreach (string propertyName in propertyNames) { if (!_errors.ContainsKey(propertyName)) { _errors.Add(propertyName, new List <ValidationResult>() { validationResult }); } else { _errors[propertyName].Add(validationResult); } RaiseErrorsChanged(propertyName); } } return(false); } return(true); }
public virtual bool Validate(string propertyName) { var validationCommands = GetValidationRules(propertyName); var validationContext = new ValidationCommandContext(); validationCommands.ForEach(c => c.ExecuteCommand(validationContext)); ClearErrors(propertyName); if (!validationContext.IsValid) { AddErrors(propertyName, validationContext.Errors); } return(validationContext.IsValid); }