public static MutatorsConfigurator <TRoot, TChild, string> NotLongerThan <TRoot, TChild>( this MutatorsConfigurator <TRoot, TChild, string> configurator, int length, MultiLanguageTextBase title, int priority = 0, ValidationResultType type = ValidationResultType.Error) { var pathToValue = (Expression <Func <TRoot, string> >)configurator.PathToValue.ReplaceEachWithCurrent(); var condition = Expression.Convert(Expression.GreaterThan(Expression.MakeMemberAccess(pathToValue.Body, stringLengthProperty), Expression.Constant(length)), typeof(bool?)); var message = Expression.Lambda <Func <TRoot, MultiLanguageTextBase> >(Expression.MemberInit( Expression.New(typeof(LengthOutOfRangeText)), Expression.Bind(lengthOutOfRangeTextToProperty, Expression.Constant(length, typeof(int?))), Expression.Bind(lengthOutOfRangeTextTitleProperty, Expression.Constant(title, typeof(MultiLanguageTextBase)))), pathToValue.Parameters); configurator.SetMutator(InvalidIfConfiguration.Create(MutatorsCreator.Sharp, priority, Expression.Lambda <Func <TRoot, bool?> >(condition, pathToValue.Parameters), message, type)); return(configurator); }
public static MutatorsConfigurator <TRoot, TChild, string> LengthInRange <TRoot, TChild>( this MutatorsConfigurator <TRoot, TChild, string> configurator, int fromLength, int toLength, MultiLanguageTextBase title, int priority = 0, ValidationResultType type = ValidationResultType.Error) { var methodReplacer = new MethodReplacer(MutatorsHelperFunctions.EachMethod, MutatorsHelperFunctions.CurrentMethod); var pathToValue = (Expression <Func <TRoot, string> >)methodReplacer.Visit(configurator.PathToValue); var leftExpression = Expression.LessThan(Expression.MakeMemberAccess(pathToValue.Body, stringLengthProperty), Expression.Constant(fromLength)); var rigthExpression = Expression.GreaterThan(Expression.MakeMemberAccess(pathToValue.Body, stringLengthProperty), Expression.Constant(toLength)); var condition = Expression.Convert(Expression.OrElse(leftExpression, rigthExpression), typeof(bool?)); var message = Expression.Lambda <Func <TRoot, MultiLanguageTextBase> >(Expression.MemberInit( Expression.New(typeof(LengthOutOfRangeText)), Expression.Bind(lengthOutOfRangeTextToProperty, Expression.Constant(toLength, typeof(int?))), Expression.Bind(lengthOutOfRangeTextFromProperty, Expression.Constant(fromLength, typeof(int?))), Expression.Bind(lengthOutOfRangeTextTitleProperty, Expression.Constant(title, typeof(MultiLanguageTextBase)))), pathToValue.Parameters); configurator.SetMutator(InvalidIfConfiguration.Create(MutatorsCreator.Sharp, priority, Expression.Lambda <Func <TRoot, bool?> >(condition, pathToValue.Parameters), message, type)); return(configurator); }
public MutatorsConfigurator <TRoot, TRoot, TValue> Target <TValue>(Expression <Func <TRoot, TValue> > pathToValue, MultiLanguageTextBase title = null) { return(new MutatorsConfigurator <TRoot, TRoot, TValue>(root, data => data, pathToValue, Condition, title)); }
public static FormattedValidationResult Error(MultiLanguageTextBase message, object value, MultiLanguagePathText path, int priority = 0) { return(new FormattedValidationResult(ValidationResult.Error(message), value, path, priority)); }
public ValidationResult(ValidationResultType validationResultType, MultiLanguageTextBase message) { Type = validationResultType; Message = message; }
public static ValidationResult Error(MultiLanguageTextBase message) { return(new ValidationResult(ValidationResultType.Error, message)); }
public static ValidationResult Warning(MultiLanguageTextBase message) { return(new ValidationResult(ValidationResultType.Warning, message)); }