Aller au contenu principal

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.

  1. Clic droit sur Snowfall.Web.Mvc -> Add -> Reference Imgur

  2. Cocher Snowfall.Domain Imgur

  3. Appuyer sur Add

Déplacer Evenement.cs

  1. Déplacer Snowfall.Web.Mvc/Models/Evenement.cs vers Snowfall.Domain/Models en glissant le fichier Imgur

  2. Confirmer Imgur

  3. Renommer le namespace. Vous aurez un avertissement comme quoi le namespace ne correspond plus à celui mentionné dans le nom de fichier. Utilisez l'aide contextuelle de Rider pour renommer le namespace automatiquement. Imgur

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.

Snowfall.Web.Mvc/Views/_ViewImports.cshtml
@using Snowfall.Web.Mvc
@using Snowfall.Web.Mvc.Models
@using Snowfall.Domain.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
info

_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:

Snowfall.Web.Mvc/Views/Evenements/_Evenement.cshtml
@model Evenement

Vous pouvez renommer le @model dans les fichiers suivants:

  1. Snowfall.Web.Mvc/Views/Evenements/_Evenement.cshtml
  2. Snowfall.Web.Mvc/Views/Evenements/Index.cshtml
  3. Snowfall.Web.Mvc/Views/Evenements/Show.cshtml