9-2 Utiliser les modèles de la couche Domain
Le projet Web.Mvc est dépendant des modèles placés dans le dossier Models du projet. Les modèles seront cependant contenus dans leur propre projet à partir de maintenant, soit le projet que vous avez créé à l'étape précédente.
Il vous faudra donc déplacer Evenement.cs vers le projet Domain et rétablir les références dans les contrôleurs et les vues.
Ajouter une référence au projet Domain à partir du projet Web.Mvc.
-
Clic droitsurSnowfall.Web.Mvc->Add->Reference
-
Cocher Snowfall.Domain
-
Appuyer sur
Add
Déplacer Evenement.cs
-
Déplacer
Snowfall.Web.Mvc/Models/Evenement.csversSnowfall.Domain/Modelsen glissant le fichier
-
Confirmer

-
Renommer le namespace. Vous aurez un avertissement comme quoi le
namespacene correspond plus à celui mentionné dans le nom de fichier. Utilisez l'aide contextuelle de Rider pour renommer lenamespaceautomatiquement.
Ajout de la référence à _ViewImports.cshtml
Remarquez que partout où nous utilisons le modèle Evenement dans les vues, on y fait référence via Snowfall.Domain.Models.Evenement.
Il est possible de simplifier la ligne d'importation en ajoutant le namespace (Snowfall.Domain.Models) au fichier _ViewImports.cshtml.
On peut donc simplement ajouter la ligne @using Snowfall.Domain.Models dans Snowfall.Web.Mvc/Views/_ViewImports.cshtml.
@using Snowfall.Web.Mvc
@using Snowfall.Web.Mvc.Models
@using Snowfall.Domain.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
_ViewImports.cshtml contient les imports partagés par toutes les vues. On veut garder @using Snowfall.Web.Mvc.Models puisqu'il s'agit d'un dossier de notre projet et nous continuerons de l'utiliser.
Toutefois, on veut ajouter la référence aux modèles du projet Domain, doù l'ajout de la ligne @using Snowfall.Domain.Models.
Simplifier @model
Maintenant, vous pouvez simplement utiliser @model Evenement plutôt que @model Snowfall.Domain.Models.Evenement.
Par exemple:
@model Evenement
Vous pouvez renommer le @model dans les fichiers suivants:
Snowfall.Web.Mvc/Views/Evenements/_Evenement.cshtmlSnowfall.Web.Mvc/Views/Evenements/Index.cshtmlSnowfall.Web.Mvc/Views/Evenements/Show.cshtml