Vous êtes sur la page 1sur 3

TP GestionProduits

Partie 1: Les bases du langage C#

Partie 1 : Diagramme de classes

1. Créer un projet nommé GP.Console de type « Application Console » dans une solution
nomée GestionProduits.
2. Dans la solution GestionProduits, créer un autre projet nommé « GP.Domain » de type
« Bibliothèque de classe (.Net Framework) ». Le projet GP.Console doit référencer le
projet GP.Domain.
3. Implémenter le diagramme de classes suivant :
a. Créer les différentes classes. Les attributs des classes doivent être encapsulés dans
des propriétés.
b. Créer les relations :
i. One to many entre les entités « Product » et « Category »
ii. Many to many entre les entités « Product » et « Provider »
iii. Héritage entre les entités « Product », « Chemical » et « Biological ».
4. Créer une classe abstraite nommée « Concept », classe mère de toutes les autres. Elle
contient la méthode abstraite « GetDetails() » permettant d’afficher les détails d’une
entité.

1/3
Partie 2 : Type valeur / Type référence

5. L’attribut IsApproved permet de vérifier si les attributs Password et ConfirmPassword ont


la même valeur.
a. Créer la méthode statique SetIsApproved(Provider P) qui permet de mettre à jour
l’attribut IsApproved de l’objet P passé en paramètre.
b. Créer la méthode statique SetIsApproved(string password, string
confirmPassword, bool isApproved) qui permet de modifier le paramètre
isApproved en fonction de l’égalité entre les deux autres paramètres.
c. Dans le projet GP.Console :
i. Créer un objet P1 de type Provider,
ii. Tester la méthode (b) en utilisant les attributs de P1 et afficher ses trois
attributs.
iii. Tester la méthode (a) en utilisant l’objet P1 et afficher ses trois attributs.
iv. Commentez le résultat.

Partie 3 : Encapsulation

6. Dans l’entité Provider :


a. L’Attribut « Password » doit être une chaîne de caractères dont la taille est dans
l’intervalle [5, 20] sinon un message d’erreur s’affiche.
b. L’Attribut « ConfirmPassword » doit avoir la même valeur que l’attribut
« Password » sinon un message d’erreur s’affiche.

Partie 4 : Polymorphisme

7. Dans l’entité Provider, créer des méthodes « bool Login(…) » qui permettent de :
a. Vérifier l’authentification en utilisant deux paramètres nom de l’utilisateur et mot
de passe.
b. Vérifier l’authentification en utilisant trois paramètres nom de l’utilisateur, mot de
passe et email.
c. Remplacer à la fois les deux méthodes précédentes.
8. Dans l’entité Product créer la méthode « GetMyType() » qui permet d’afficher le type de
produit comme suit (utiliser le mot clé virtual):
 « UNKNOWN » si l’objet est de type « Product »,
 « BIOLOGICAL » si l’objet est de type « Biological», et
 « CHEMICAL » si l’objet est de type « Chemical».
2/3
Partie 5 : Collections / Itérations / Structures conditionnelles

9. Dans l’entité Provider:


a. Modifier la méthode GetDetails() pour afficher ; en plus ; les produits associés.
b. Ajouter la méthode GetProducts(string filterType, string filterValue) qui affiche
les produits en fonction de type de filtre et sa valeur. Le type de filtre représente un
attribut de la classe Product.
Par exemple GetProducts(« DATEPROD », « 12/12/2019 ») permettra d’afficher
les produits dont la valeur de DateProd est égale à 12/12/2019.
10. Dans le projet « GP.Console » créer les collections d’objets suivants et tester Les
différentes méthodes déjà implémentées:

Provider / Category CAT1 CAT2 CAT3 NULL


PROV1 PROD1, PROD3
PROD2
PROV2 PROD1 PROD5
PROV3 PROD1 PROD4
PROV4 PROD6 PROD4
PROV5 PROD6 PROD4

3/3