J'essaie d'ajouter de l'architecture à mes projets et d'enrichir mes modèles. J'ai commencé avec CQS (implémentation similaire à celui-ci: CQS-Sample) et voici mon premier problème.Validation de modèle, contraintes de base de données
Disons que j'ai deux classes comme celles-ci-dessous:
public class Network
{
public int Id { get; set; }
public User User { get; set; }
private IQueryFactory _queryFactory { get; set; }
public Network(IQueryFactory queryFactory)
{
_queryFactory = queryFactory;
}
public void AddUser(User user)
{
if(this.User == null && user != null)
{
userHasUniqueEmail(user);
this.User = user;
}
}
private void userHasUniqueEmail(User user)
{
bool isUnique = _queryFactory.ResolveQuery<INewUserUniqueQuery>().Execute(user.Email);
if (!isUnique)
{
throw new ArgumentException("E-mail is not unique");
}
}
}
public class User
{
public int Id { get; set; }
public string Email { get; set; }
}
objet réseau peut avoir l'utilisateur, mais je dois vérifier d'abord dans la base de données que l'e-mail donnée n'existe pas déjà ou faire d'autres vérifications , ainsi mes commandes seront exécutées avec succès. En ajoutant un utilisateur, je veux dire ajouter un nouvel utilisateur à la base de données. Serait-il correct de le faire?