diff --git a/src/YuckQi.Domain.Services/YuckQi.Domain.Services.csproj b/src/YuckQi.Domain.Services/YuckQi.Domain.Services.csproj index f3734d7..d8ec536 100644 --- a/src/YuckQi.Domain.Services/YuckQi.Domain.Services.csproj +++ b/src/YuckQi.Domain.Services/YuckQi.Domain.Services.csproj @@ -4,7 +4,7 @@ netstandard2.0 true Kevin J Lambert - 1.3.0 + 1.3.1 LICENSE A .NET library for bootstrapping a domain services project. diff --git a/src/YuckQi.Domain.Validation/Extensions/AbstractValidatorExtensions.cs b/src/YuckQi.Domain.Validation/Extensions/AbstractValidatorExtensions.cs index 8c4bafa..e4b1c9c 100644 --- a/src/YuckQi.Domain.Validation/Extensions/AbstractValidatorExtensions.cs +++ b/src/YuckQi.Domain.Validation/Extensions/AbstractValidatorExtensions.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using FluentValidation; using FluentValidation.Results; @@ -10,14 +11,29 @@ public static class AbstractValidatorExtensions { public static Result GetResult(this AbstractValidator validator, T item, String failedValidationMessageId) { - var result = validator.Validate(item); - if (result == null) - throw new ArgumentNullException(nameof(result)); + var validationResult = validator.Validate(item); + var result = BuildResult(validationResult, item, failedValidationMessageId); - if (result.IsValid) + return result; + } + + public static async Task> GetResultAsync(this AbstractValidator validator, T item, String failedValidationMessageId) + { + var validationResult = await validator.ValidateAsync(item); + var result = BuildResult(validationResult, item, failedValidationMessageId); + + return result; + } + + private static Result BuildResult(ValidationResult validationResult, T item, String failedValidationMessageId) + { + if (validationResult == null) + throw new ArgumentNullException(nameof(validationResult)); + + if (validationResult.IsValid) return new Result(item); - return new Result(default, GetResultDetail(result, failedValidationMessageId)); + return new Result(default, GetResultDetail(validationResult, failedValidationMessageId)); } private static IReadOnlyCollection GetResultDetail(ValidationResult result, String failedValidationMessageId) diff --git a/src/YuckQi.Domain.Validation/YuckQi.Domain.Validation.csproj b/src/YuckQi.Domain.Validation/YuckQi.Domain.Validation.csproj index f56e229..eea7979 100644 --- a/src/YuckQi.Domain.Validation/YuckQi.Domain.Validation.csproj +++ b/src/YuckQi.Domain.Validation/YuckQi.Domain.Validation.csproj @@ -4,7 +4,7 @@ netstandard2.0 true Kevin J Lambert - 1.3.0 + 1.3.1 LICENSE A .NET library providing domain validation fundamentals. diff --git a/src/YuckQi.Domain/YuckQi.Domain.csproj b/src/YuckQi.Domain/YuckQi.Domain.csproj index 7d9c6a6..90a9c6c 100644 --- a/src/YuckQi.Domain/YuckQi.Domain.csproj +++ b/src/YuckQi.Domain/YuckQi.Domain.csproj @@ -4,7 +4,7 @@ netstandard2.0 true Kevin J Lambert - 1.3.0 + 1.3.1 LICENSE A .NET library for bootstrapping a domain model project.