@@ -11,10 +11,35 @@ namespace SharpGrip.FluentValidation.AutoValidation.Mvc.Validation
11
11
{
12
12
public static class FluentValidationHelper
13
13
{
14
+ public static ValidationResult ? ValidateWithFluentValidation (
15
+ IServiceProvider serviceProvider ,
16
+ object ? model ,
17
+ ActionExecutingContext actionExecutingContext )
18
+ {
19
+ return ExecuteValidation (
20
+ serviceProvider ,
21
+ model ,
22
+ actionExecutingContext ,
23
+ ( validator , validationContext ) => Task . FromResult ( validator . Validate ( validationContext ) ) ) . GetAwaiter ( ) . GetResult ( ) ;
24
+ }
25
+
14
26
public static async Task < ValidationResult ? > ValidateWithFluentValidationAsync (
15
27
IServiceProvider serviceProvider ,
16
28
object ? model ,
17
29
ActionExecutingContext actionExecutingContext )
30
+ {
31
+ return await ExecuteValidation (
32
+ serviceProvider ,
33
+ model ,
34
+ actionExecutingContext ,
35
+ async ( validator , validationContext ) => await validator . ValidateAsync ( validationContext , actionExecutingContext . HttpContext . RequestAborted ) ) ;
36
+ }
37
+
38
+ private static async Task < ValidationResult ? > ExecuteValidation (
39
+ IServiceProvider serviceProvider ,
40
+ object ? model ,
41
+ ActionExecutingContext actionExecutingContext ,
42
+ Func < IValidator , IValidationContext , Task < ValidationResult ? > > validationFunc )
18
43
{
19
44
if ( model == null )
20
45
{
@@ -52,7 +77,7 @@ public static class FluentValidationHelper
52
77
validationContext = globalValidationInterceptor . BeforeValidation ( actionExecutingContext , validationContext ) ?? validationContext ;
53
78
}
54
79
55
- var validationResult = await validator . ValidateAsync ( validationContext , actionExecutingContext . HttpContext . RequestAborted ) ;
80
+ var validationResult = await validationFunc ( validator , validationContext ) ;
56
81
57
82
if ( validatorInterceptor != null )
58
83
{
0 commit comments