jeudi 3 septembre 2015

Is validation inside domain project in DDD?

I want to validate my domain model entities using FluentValidation. I read an answer about validation in DDD that used FluentValidation for validating his entity. Here is how he validate its entity:

public class ParticipantValidator : AbstractValidator<Participant>
{
    public ParticipantValidator(DateTime today, int ageLimit, List<string> validCompanyCodes, /*any other stuff you need*/)
    {...}

public void BuildRules()
{
         RuleFor(participant => participant.DateOfBirth)
                .NotNull()
                .LessThan(m_today.AddYears(m_ageLimit*-1))
                .WithMessage(string.Format("Participant must be older than {0} years of age.", m_ageLimit));

        RuleFor(participant => participant.Address)
            .NotNull()
            .SetValidator(new AddressValidator());

        RuleFor(participant => participant.Email)
            .NotEmpty()
            .EmailAddress();
        ...
}

}

So my Domain Project is depend on FluentValidation library.

But I think it is bad Idea that my Domain Project depends on third party library. How I can prevent this problem?

Aucun commentaire:

Enregistrer un commentaire