public Engine(IInvokerRegistry invokerRegistry, IErrorResolver errorResolver) { if (invokerRegistry == null) throw new System.ArgumentNullException("invokerRegistry"); if (errorResolver == null) throw new System.ArgumentNullException("errorResolver"); _errorResolver = errorResolver; _invokerRegistry = invokerRegistry; }
public string GetErrorMessage(IErrorResolver resolver, string propertyName, object value) { if (resolver == null) { throw new ArgumentNullException("resolver"); } if (value == null) { throw new ArgumentNullException("value"); } if (propertyName == null) { throw new ArgumentNullException("propertyName"); } var exp = this.CreatePropertyExpression(propertyName, value); ValidationError[] validationErrors; if (this.HasError(exp, value, out validationErrors)) { return(resolver.GetErrorMessage(validationErrors[0])); } return(null); }
public string[] GetErrorMessages(object value, IErrorResolver errorResolver) { if (errorResolver == null) { throw new System.ArgumentNullException("errorResolver"); } if (value == null) { throw new System.ArgumentNullException("value"); } var result = new List <string>(); Dictionary <EquatableExpression, List <ValidationError> > errorsOnValue; if (!_errors.TryGetValue(value, out errorsOnValue)) { return(new string[0]); } foreach (var expression in errorsOnValue.Keys) { foreach (var errorOnExpression in errorsOnValue[expression]) { var message = errorResolver.GetErrorMessage(errorOnExpression.Value.GetType(), errorOnExpression.Expression, errorOnExpression.Rule, errorOnExpression.ValidationArguments); if (message == null) { continue; } result.Add(message); } } return(result.ToArray()); }
public WorkTimeService(IConsoleLogger consoleLogger, IValidationService validationService, IErrorResolver errorResolver) { _consoleLogger = consoleLogger; _validationService = validationService; _errorResolver = errorResolver; }
public HttpPipeline( ISerializer serializer, IErrorResolver <HttpResponseMessage> errorResolver ) { _serializer = serializer; _errorResolver = errorResolver; }
public HttpPipeline( IErrorResolver <HttpResponseMessage> errorResolver ) : this( new JsonSerializer(), errorResolver ) { }
/// <summary> /// Creates a Rules Engine. /// </summary> /// <param name="basedOn">Copies rules from base Engine</param> public Engine(Engine basedOn) { if (basedOn == null) { throw new System.ArgumentNullException("basedOn"); } _registry = basedOn._registry.Clone(); _defaultErrorResolver = basedOn._defaultErrorResolver.Clone(); }
public string[] GetErrorMessages(IErrorResolver errorResolver) { if (errorResolver == null) { throw new System.ArgumentNullException("errorResolver"); } object[] errorObjects = _errors.Keys.ToArray(); var result = errorObjects.SelectMany(o => GetErrorMessages(o, errorResolver)).ToArray(); return(result); }
public MvcValidationReport(ModelStateDictionary modelState, IErrorResolver errorResolver) { if (errorResolver == null) { throw new System.ArgumentNullException("errorResolver"); } if (modelState == null) { throw new System.ArgumentNullException("modelState"); } Initialize(modelState, null, errorResolver); }
public ValidationServiceTests() { var errorResolver = Substitute.For <IErrorResolver>(); var serviceProvider = new ServiceCollection() .AddSingleton(s => errorResolver) .AddSingleton <IValidationService, ValidationService>() .BuildServiceProvider(); _errorResolver = errorResolver; _validationService = serviceProvider.GetService <IValidationService>(); }
public Engine(IInvokerRegistry invokerRegistry, IErrorResolver errorResolver) { if (invokerRegistry == null) { throw new System.ArgumentNullException("invokerRegistry"); } if (errorResolver == null) { throw new System.ArgumentNullException("errorResolver"); } _errorResolver = errorResolver; _invokerRegistry = invokerRegistry; }
public static IActionResult Enrol( [HttpTrigger(AuthorizationLevel.Anonymous, "Post", Route = "users")] HttpRequest req, [Inject] IErrorResolver <UserError, IActionResult> errorResolver, [Inject] IUserPipelines pipelines) { var response = pipelines.EnrolUser.Handle(req); if (response.IsSuccess) { return(new OkObjectResult(response.Success)); } return(response.Error.ToActionResult(errorResolver.Resolve)); }
public static IActionResult Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "packages")] HttpRequest req, [Inject] IErrorResolver <AuditError, IActionResult> auditErrorResolver, [Inject] IPackagePipelines packagePipelines) { var pipeline = packagePipelines.AuditPackages; var response = pipeline.Handle(req); if (response.IsSuccess) { return(new OkObjectResult(response.Success)); } return(response.Error.ToActionResult(auditErrorResolver.Resolve)); }
public string GetErrorMessage(IErrorResolver resolver, string propertyName, object value) { if (resolver == null) throw new System.ArgumentNullException("resolver"); if (value == null) throw new System.ArgumentNullException("value"); if (propertyName == null) throw new System.ArgumentNullException("propertyName"); var exp = CreatePropertyExpression(propertyName, value); ValidationError[] validationErrors; if (base.HasError(exp, value, out validationErrors)) { return resolver.GetErrorMessage(validationErrors[0]); } return null; }
public static IActionResult Run( [HttpTrigger(AuthorizationLevel.Anonymous, "Post", Route = "keys")] HttpRequest req, [Inject] IErrorResolver <KeyError, IActionResult> errorResolver, [Inject] IKeyPipelines pipelines) { var pipeline = pipelines.GenerateKey; var response = pipeline.Handle(req); if (response.IsSuccess) { return(new OkObjectResult(new KeyResponse { Name = response.Success.Name, Value = response.Success.Value })); } return(response.Error.ToActionResult(errorResolver.Resolve)); }
private void Initialize(ModelStateDictionary modelState, Engine engine, IErrorResolver errorResolver) { _modelState = modelState; _engine = engine; //NOTE: errorResolver and engine cannot be null at the same time (see constructors) if (errorResolver == null) { _errorResolver = engine.DefaultErrorResolver; } else { _errorResolver = errorResolver; } CreateInnerReport(); }
public WorkTimeServiceTests() { var errorResolver = Substitute.For <IErrorResolver>(); var validationService = Substitute.For <IValidationService>(); var serviceProvider = new ServiceCollection() .AddSingleton(s => errorResolver) .AddSingleton(s => validationService) .AddSingleton <IWorkTimeService, WorkTimeService>() .AddSingleton <IConsoleLogger, ConsoleLogger>() .BuildServiceProvider(); _errorResolver = errorResolver; _validationService = validationService; _workTimeService = serviceProvider.GetService <IWorkTimeService>(); _path = GetApplicationRoot(); }
public ChainedErrorResolver( IErrorResolver <T> resolver, params IErrorResolver <T>[] resolvers ) { _resolver = resolver; if (resolvers.Length > 0) { _chain = Option.Some <IErrorResolver <T> >( new ChainedErrorResolver <T>( resolvers.First(), resolvers.Skip(1).ToArray() )); } else { _chain = Option.None <IErrorResolver <T> >(); } }
/// <summary> /// Creates a Rules Engine. /// </summary> /// <param name="basedOn">Copies specific rules from base Engine</param> /// <param name="types">Copies rules for the specified types only.</param> public Engine(Engine basedOn, params Type[] types) { if (types == null) { throw new System.ArgumentNullException("types"); } if (basedOn == null) { throw new System.ArgumentNullException("basedOn"); } _defaultErrorResolver = basedOn._defaultErrorResolver.Clone(); var registry = basedOn._registry.Clone(); foreach (var type in types) { var invokers = registry.GetInvokers(type); foreach (var invoker in invokers) { _registry.RegisterInvoker(invoker); } } }
public string GetErrorMessage <T, R>(T value, Expression <Func <T, R> > expression, IErrorResolver resolver) { return(GetErrorMessage(value, new EquatableExpression(expression), resolver)); }
private void SetErrorMessage <T, R>(IErrorResolver resolver, Expression <Func <T, R> > expression, IRule rule, string message) { resolver.SetErrorMessageFor(typeof(T), new EquatableExpression(expression), rule, message); }
public string GetErrorMessage(object value, EquatableExpression expression, IErrorResolver resolver) { //NOTE: Expression can be null. if (value == null) { throw new System.ArgumentNullException("value"); } if (resolver == null) { throw new System.ArgumentNullException("resolver"); } ValidationError[] errors; ValidationError error; object[] validationArguments = new object[0]; if (this.HasError(value, expression, out errors)) { error = errors[0]; validationArguments = error.ValidationArguments; var message = resolver.GetErrorMessage(error.Value.GetType(), error.Expression, error.Rule, error.ValidationArguments); return(message); } else if (expression != null && expression.Expression.ReturnType.IsClass && expression.Expression.ReturnType != typeof(string)) { //There may be the case that for compositions, a message is set for CallValidate(). When //this happens, there won't be any error for a => a.C (where 'C' is another object) //still, you would like to have a 'C is not valid' message... //Step 1: find out if there are any Messages defined for that property var message = resolver.GetErrorMessage(value.GetType(), expression, null, new object[0]); //if null fallback on message for the type of that property. if (message == null) { message = resolver.GetErrorMessage(expression.Expression.ReturnType, null, null, new object[0]); } if (message == null) { return(null); } //Step 2: There is a Message defined. Find out if there is an error for the property. object propertyValue = null; try { //TODO: This should be resolved using a Interface maybe. propertyValue = expression.Expression.Compile().DynamicInvoke(value); } catch (NullReferenceException) { //NOTE: Swallow all NullReferenceException. } catch (Exception ex) { //Wrap and re-throw. throw new InvalidOperationException(string.Format("Could not get property value for expression {0}. See InnerException for details.", expression.Expression), ex); } if (propertyValue == null) { return(null); } //Step 3: The property may be an IEnumerable. Need to return the message if any elements has an error... //TODO: This is bit dodgy, you should only enumerate if a CallValidateForEach was used... //Return null if none of the propertyValue(s) have errors. if (ToEnumerable(propertyValue).All(v => !HasError(v, null))) { return(null); } return(message); } return(null); }
public Engine() { _defaultErrorResolver = new DefaultErrorResolver(); }
public string GetErrorMessage <T, R>(T value, System.Linq.Expressions.Expression <Func <T, R> > expression, IErrorResolver resolver) { return(_innerReport.GetErrorMessage <T, R>(value, expression, resolver)); }
public string[] GetErrorMessages(object value, IErrorResolver errorResolver) { return(_innerReport.GetErrorMessages(value, errorResolver)); }
private void SetErrorMessage <T, R>(IErrorResolver resolver, Expression <Func <T, R> > expression, IRule rule, string message) { resolver.AddEntry(new MessageEntry(typeof(T), new EquatableExpression(expression), rule, () => message)); }
public ValidationService(IErrorResolver errorResolver) { _errorResolver = errorResolver; }
public ExceptionHandler(IErrorResolver errorResolver) { this._errorResolver = errorResolver; }
public string GetErrorMessage <T, R>(T value, Expression <Func <T, R> > expression, IErrorResolver resolver) { throw new NotImplementedException(); }
public string GetErrorMessage(object value, EquatableExpression expression, IErrorResolver resolver) { throw new NotImplementedException(); }