Je développe une application Winforms. L'un de mes formulaires accepte la saisie de l'utilisateur et appelle un service Web pour ajouter la saisie dans la base de données. L'entrée doit être unique, mais je n'ai aucun moyen de savoir si elle est unique du côté client. J'envoie l'entrée au WS et il est responsable de l'ajouter à la base de données ou d'informer le client que l'entrée existe déjà.
Quelle est la bonne façon de procéder ?
Dois-je faire deux appels au WS, un pour savoir s'il est unique et un pour l'insérer dans la base de données ? Je sens des problèmes de synchronisation + deux allers-retours à travers la frontière.
Dois-je renvoyer un enum, ValueNotUnique et ValueInsertedSuccessfully ?
Ou peut-être lancer une exception ? Cela ne semble pas très performant, et je n'aime pas utiliser des exceptions pour des choses dont je sais déjà qu'elles pourraient ne pas fonctionner.
Y a-t-il un beau design à ce désordre ? Aide appréciée, merci d'avance !