Est-il approprié d'utiliser la fonction de validation active pour modifier les données? Par exemple, nous avons un champ de numéro de téléphone, la couche de service accepte tous les formats correspondant à un certain Regex, tous les ci-dessous sont des formats valides pour le même numéro:Utilisez la validation active pour gérer les formats d'entrée ou modifier l'entrée.
+2 010 00011122
+201000011122
00201000011122
Je veux maintenir un format dans la base de données, cependant permettre à tous mes clients d'en utiliser. Je pensais à manipuler la valeur de modèle lors de la validation comme ci-dessous:
RuleFor(m => m.Phone)
.NotEmpty().WithMessage(Common.ResourceFiles.Validation.Required)
.Matches("Constants.Regex.Phone").WithMessage(Common.ResourceFiles.Validation.InvalidFormat)
.DependentRules(d => d.RuleFor(m => m.Phone).Must(
(model, phone) =>
{
if (phone.StartsWith("+"))
model.Phone = model.Phone.Replace("+", "00");
// Other changes here
return true;
}));
Est-il légal de le faire? Sinon, quelle couche devrait imposer une telle logique?