Académique Documents
Professionnel Documents
Culture Documents
TP5 Asp Net
TP5 Asp Net
2022-2023
Arwa MILI TP5
1 Objectifs du TP
L’objectif de ce TP est de créer une solution ASP.net Core MVC pour une application de gestion de
restaurants et de leurs propriétaires appelée "Restos" en se basant sur l’approche de développement
"Code First". Aussi, on va configurer les classes du domaine avec Fluent API au lieu des conventions.
2 Etapes de réalisation:
La première étape est l’installation des deux packages SQLServer et Tools d’EntityFramework. La
version installée est la dernière version stable : 7.0.4 .
2
Arwa MILI TP5
Ici , il n y a pas d’attribut "id" pour être reconnu automatiquement comme clé primaire du modèle.
Aussi On n’aura pas d’autres attribut contenant "id" pour référer aux associations. Donc les attributs
qui servent de clés vont être indiqués par suite dans un autre fichier dont on va parler.
Les deux classes contiennet les attributs indiqués dans les figures suivantes :
Figure 2: Restaurant.cs
Figure 3: Proprietaire.cs
3
Arwa MILI TP5
Les propriétés de navigation entre ces deux classes sont ajoutés dans les deux classes comme la figure
ci dessous:
4
Arwa MILI TP5
Fluent API sert à remplacer les annotation des conventions réalisées auparavant en dessus de chaque
attribut dans le modèle.
Cette configuration contient les clés de chaque table , les conditions sur les attributs et aisni que
les associations entre tables et les clés qui réfèrent à ces relations d’association...
Son code est écrit dans la classe de contexte. Il est comme suit :
5
Arwa MILI TP5
Les étapes effectuées pour se connecter à la base de donnée sont les mêmes que dans les TPs précé-
dents. Elles ccomportent des instructions à ajouter dans program.cs (Service pour lier la classe de
contexe à la base de donnée) et appsettings.json (la chaine de connection).
6
Arwa MILI TP5
7
Arwa MILI TP5
8
Arwa MILI TP5
On a ajouté la classe Avis.cs. On a configuré l’association 1-n entre elle et la classe Restautant.cs.
Ensuite on a ajouté sa configuration ( les conditions sur ses attributs et ses associations) sous la
configuration des deux autres classes ,ainsi que son DBSet dans la classe de contexte .
Enfin on a tapé les commandes pour sa migration dans la BDD
9
Arwa MILI TP5
2.8 Jointure
Pour lister les avis de chacun des restos , on a ajouté un lien hypertexte devant chaque restaurant
dans la vue index qui mène vers la vue Avis qui liste les avis pour ce resto (similaire au TP4).
L’action de Avis est développé dans le contrôleur de Restaurant
L’action, la vue Avis ainsi que la ligne à ajouter Index restaurant pour le lien hypertexte et une Vue
Web de Avis sont ci dessous :
10
Arwa MILI TP5
11
Arwa MILI TP5
2.8.2 Lister les avis donnée sur un restaurant bien déterminé passé en paramètre via son
code
On a développé l’action AvisPourUnResto dans le controleur de Avis. Son code récupère la liste
des ids des restaurants et passe les avis, Dans le html de la vue de cette action , une liste permet de
sélectionner un code particulier et afficher les avis pour le resto ayant ce code. On accède à cette
vue via un lien hypertexte appelé "Choose particular restaurant" depuis l’index de Avis. Les codes
des vues sont les suivants :
12
Arwa MILI TP5
13
Arwa MILI TP5
Dans la figure 21 ci dessous, en sélectionnant id = 2 , on n’affiche que les avis concernant ce Resto
(Chaneb) parmi les avis totals (Figure 14) :
2.8.3 Lister les restaurants ayant une note moyenne comprise dans un intervalle (En parti-
culier >=3.5) :
Pour cette partie , on n’a pas développé une nouvelle action , mais on a ajouté un filtre dans la vue
index. Et ajouté le code de ce filtre dans la vue index et le contrôleur index de Restaurants.
L’action index et sa vue sont donc devenuent comme les figures ci-dessous:
En effet, dans l’action , on chargé la liste des restos , puis on a sélectionner les restaurants dont les
avis groupés par restaurant (avisGroup) ayant une moyenne des Notes >= seuilbas et <= seuil
haut (application de Average()) ; Ces valeurs de seuils sont saisis dans le formulaire de la vue
index.
Mais au premier chargement de la page index , on affiche tous les restaurants , c’est pourquoi on
a précisé que si aucun valeur des seuils n’est indiqué ,on retourne la variable restosDbContext con-
tenant tous les restaurants.
14
Arwa MILI TP5
15
Arwa MILI TP5
Et dès qu’on saisit des valeurs de seuils ( note moyenne >= 3.5 çàd : seuil bas >= 3.5 et seuil haut
<=5 ), on aura que ce restaurant affiché :
16