Skip to content

Commit 715602c

Browse files
committed
Only validate messages that have IValidatable marker
1 parent aee3acd commit 715602c

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

samples/ModularMonolithSample/src/Common.Module/Middleware/ValidationMiddleware.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace Common.Module.Middleware;
66
[Middleware(5)]
77
public static class ValidationMiddleware
88
{
9-
public static HandlerResult Before(object message)
9+
public static HandlerResult Before(IValidatable message)
1010
{
1111
if (MiniValidator.TryValidate(message, out var errors))
1212
return HandlerResult.Continue();
@@ -16,3 +16,5 @@ public static HandlerResult Before(object message)
1616
return Result.Invalid(validationErrors);
1717
}
1818
}
19+
20+
public interface IValidatable { }

samples/ModularMonolithSample/src/Orders.Module/Messages/OrderMessages.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.ComponentModel.DataAnnotations;
2+
using Common.Module.Middleware;
23

34
namespace Orders.Module.Messages;
45

@@ -14,17 +15,17 @@ public record CreateOrder(
1415

1516
[Required(ErrorMessage = "Description is required")]
1617
[StringLength(200, MinimumLength = 5, ErrorMessage = "Description must be between 5 and 200 characters")]
17-
string Description);
18+
string Description) : IValidatable;
1819

1920
public record UpdateOrder(
2021
[Required] string OrderId,
2122
decimal? Amount,
22-
string? Description);
23+
string? Description) : IValidatable;
2324

24-
public record DeleteOrder([Required] string OrderId);
25+
public record DeleteOrder([Required] string OrderId) : IValidatable;
2526

2627
// Queries
27-
public record GetOrder([Required] string OrderId);
28+
public record GetOrder([Required] string OrderId) : IValidatable;
2829
public record GetOrders();
2930

3031
// Events

samples/ModularMonolithSample/src/Products.Module/Messages/ProductMessages.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.ComponentModel.DataAnnotations;
2+
using Common.Module.Middleware;
23

34
namespace Products.Module.Messages;
45

@@ -14,18 +15,18 @@ public record CreateProduct(
1415

1516
[Required(ErrorMessage = "Price is required")]
1617
[Range(0.01, 1000000, ErrorMessage = "Price must be between $0.01 and $1,000,000")]
17-
decimal Price);
18+
decimal Price) : IValidatable;
1819

1920
public record UpdateProduct(
2021
[Required] string ProductId,
2122
string? Name,
2223
string? Description,
23-
decimal? Price);
24+
decimal? Price) : IValidatable;
2425

25-
public record DeleteProduct([Required] string ProductId);
26+
public record DeleteProduct([Required] string ProductId) : IValidatable;
2627

2728
// Queries
28-
public record GetProduct([Required] string ProductId);
29+
public record GetProduct([Required] string ProductId) : IValidatable;
2930
public record GetProducts();
3031

3132
// Events

0 commit comments

Comments
 (0)