Browse Source

Etend la classe TopModel et demo

olivier.massot 7 years ago
parent
commit
5f3ad282f1

+ 32 - 0
CD67.FicheCollege.MVC/Controllers/AnneesController.cs

@@ -0,0 +1,32 @@
+using System.Web.Mvc;
+using System.Net;
+using CD67.FicheCollege.Factory;
+using CD67.FicheCollege.Entity;
+using CD67.FicheCollege.MVC.Models;
+
+namespace CD67.FicheCollege.MVC.Controllers
+{
+    public class AnneesController : Controller
+    {
+        private Entities db = new Entities();
+
+        // GET: Home
+        public ActionResult Details(int? id)
+        {
+            if (id == null)
+            {
+                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
+            }
+
+            AnneeFactory anneeFactory = new AnneeFactory(db);
+            Entity.Annee annee = anneeFactory.getById(id);
+            if (annee == null)
+            {
+                return HttpNotFound();
+            }
+
+            TopModel viewModel = new TopModel(annee);
+            return View(viewModel);
+        }
+    }
+}

+ 23 - 4
CD67.FicheCollege.MVC/Models/TopModel.cs

@@ -1,4 +1,5 @@
-using System.Collections.Generic;
+using CD67.FicheCollege.Entity;
+using System.Collections.Generic;
 
 namespace CD67.FicheCollege.MVC.Models
 {
@@ -6,7 +7,9 @@ namespace CD67.FicheCollege.MVC.Models
     public class TopModel
     {
         // Modele de la page en cours
-        public object Model { get; set; }
+        public dynamic Model { get; set; }
+        // Obj est l'equivalent de Model, en peut-être plus clair
+        public dynamic Obj { get { return Model; } }
 
         // (Facultatif) Mode d'accès à la page
         // Defaut: Lecture
@@ -14,10 +17,13 @@ namespace CD67.FicheCollege.MVC.Models
 
         // Permet d'emporter d'éventuelles données complémentaires
         // comme les listes qui serviront entre autre à peupler les listes déroulantes.
-        public Dictionary<string, object> Bag { get; set; }
+        public Dictionary<string, object> Bag { get; set; } = new Dictionary<string, object>();
+
+        // Utilisateur courant
+        public UtilisateurConnecte User = CD67.FicheCollege.MVC.Internal.UtilisateurConnecteFactory.getUtilisateurConnecte();
 
         // ***************************
-        // Constructeur
+        // Constructeur de base
         public TopModel(object model, 
             ModeAcces acces = ModeAcces.Lecture,
             Dictionary<string, object> bag = null)
@@ -27,5 +33,18 @@ namespace CD67.FicheCollege.MVC.Models
             if (bag != null)
                 Bag = bag;
         }
+
+        // Constructeur particuliers
+        public TopModel(Annee model,
+            ModeAcces acces = ModeAcces.Lecture,
+            Dictionary<string, object> bag = null)
+        {
+            Model = model;
+            Acces = acces;
+            if (bag != null)
+                Bag = bag;
+            Bag["Annee_Lib"] = model.Libelle;
+        }
+
     }
 }

+ 15 - 0
CD67.FicheCollege.MVC/Views/Annees/Details.cshtml

@@ -0,0 +1,15 @@
+@using CD67.FicheCollege.MVC.Models
+@model TopModel
+
+<title>Fiches Collèges @Model.Bag["Annee_Lib"]</title>
+
+@{
+    ViewBag.Title = "Fiches Collèges " + @Model.Bag["Annee_Lib"];
+    Layout = "~/Views/Shared/_Layout.cshtml";
+}
+
+<h1>Accueil @(Model.Obj.Libelle)</h1>
+
+@Html.ActionLink("Les collèges", "Index", "Colleges")<br />
+@Html.ActionLink("Les actions éducatives, sportives et culturelles", "Index", "Colleges")<br />
+@Html.ActionLink("La page d'administration du site", "Index", "Admin")<br />