public void Validate(object obj, PropertyDescriptor propInfo, ValidateErrorsList errorsList) { // получаем стратегию var strategy = _strategies[_valid.Value.ObjectValidName]; if (strategy == null) { throw new DeveloperException("Strategy '{0}' is not registered for validate", _valid.Value.ObjectValidName ?? "NULL"); } // запускаем стратегию var context = new ValidateStrategyContext(obj, propInfo, _valid.Value.ObjectValidParameters, _valid.Value.ObjectValidValue) { ErrorMessage = _valid.Value.ObjectValidMessage }; if (strategy(context)) { errorsList.Add(new ValidateError(context.ErrorMessage, _valid.Value.ObjectValidLevel)); } }
public static bool TestStrategy(string name, ValidateStrategyContext context) { return(_strategies[name](context)); }