public async ValueTask <ValidationResult[]> HandleAsync(Type targetRuleType, T[] items, ValidationRuleHandlerDelegate next,
                                                                CancellationToken cancellationToken)
        {
            try
            {
                ValidationResult[] results;

                using (_metrics.MarkTime <T>(targetRuleType))
                {
                    results = await next();
                }

                _metrics.MarkResults <T>(targetRuleType, results);

                return(results);
            }
            catch (Exception ex)
            {
                _metrics.MarkException <T>(targetRuleType, ex);

                throw;
            }
        }
예제 #2
0
        public async ValueTask <ValidationResult[]> HandleAsync(Type targetRuleType, T[] items, ValidationRuleHandlerDelegate next,
                                                                CancellationToken cancellationToken)
        {
            using (var loggingContext = new LoggingContext <T>(_loggerFactory, targetRuleType, items.Length))
            {
                try
                {
                    var results = await next();

                    loggingContext.Results(results);

                    return(results);
                }
                catch (Exception ex)
                {
                    loggingContext.Exception(ex);
                    throw;
                }
            }
        }
 public ValueTask <ValidationResult[]> HandleAsync(Type targetRuleType, T[] items, TContext context, ValidationRuleHandlerDelegate next,
                                                   CancellationToken cancellationToken)
 {
     HandleCount += 1;
     return(next());
 }
예제 #4
0
        public ValueTask <ValidationResult[]> HandleAsync(Type targetRuleType, WeatherForecast[] items, DateTime context, ValidationRuleHandlerDelegate next,
                                                          CancellationToken cancellationToken)
        {
            _logger.LogInformation("Handling dated weather forecast rule.");

            return(next());
        }
예제 #5
0
 public async ValueTask <ValidationResult[]> HandleAsync(Type targetRuleType, string[] items, long context, ValidationRuleHandlerDelegate next,
                                                         CancellationToken cancellationToken)
 {
     return(await next());
 }