Validator-Zugriff auf die DatenbankC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Validator-Zugriff auf die Datenbank

Post by Anonymous »

Meine Frage ist, wie ich Felder validieren muss. Ich habe diese Klasse (Anfrage dto):

Code: Select all

public class CompleteGoogleRegistrationRequest
{
public string IdToken { get; set; } = string.Empty;
public string Username { get; set; } = string.Empty;
}
Und ich muss die Existenz des Benutzernamens überprüfen. Auf welcher Ebene soll dies überprüft werden? Auf der Ebene dieses Anforderungsvalidators oder wenn ich UserEntity erstelle und den Validator der Entität auf die Benutzerinstanz anwende. Vielleicht auch nicht und die Eindeutigkeit nur in der Geschäftslogik prüfen?
Validatorlogik:

Code: Select all

.MustAsync(async (username, cancellation) =>
{
return await userRepository.GetByUsernameReadonlyAsync(username, cancellation) == null;
})
.WithMessage("This username is already taken.");
Handlerlogik (Geschäftslogik):

Code: Select all

var existingUser = await userRepository.GetByUsernameReadonlyAsync(userRequest.Username, cancellationToken);
if (existingUser != null)
{
var errorMessage = localization.GetString("Auth.Register.UsernameAlreadyExists");

var errors = new ValidationResult(new[]
{
new ValidationFailure(nameof(userRequest.Username), errorMessage)
});
return Result.Failure(errors);
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post