using System.Net; using System.Web.Mvc; using CD67.FicheCollege.Entity; using CD67.FicheCollege.Factory; using CD67.FicheCollege.MVC.Models; using System.Linq; using System.Collections.Generic; namespace CD67.FicheCollege.MVC.Controllers { public class CollegesController : Controller { private Entities db = new Entities(); // GET: Colleges public ActionResult Index(int? annee_id) { if (annee_id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } AnneeFactory fact = new AnneeFactory(db); Annee annee = fact.getById(annee_id); AnneeViewModel model = new AnneeViewModel(annee, db, ModeAcces.Lecture); return View(model); } // GET: Colleges/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } CollegeFactory collegeFactory = new CollegeFactory(db); Entity.College college = collegeFactory.getById(id); if (college == null) { return HttpNotFound(); } college.hydrate(); // Chargement des données Educ'facile if (!string.IsNullOrEmpty(college.CodeRne)) { EducfEntities educfdb = new EducfEntities(); EducfEtablissementFactory educfFact = new EducfEtablissementFactory(educfdb); etablissement educf_etablissement = educfFact.getByRne(college.CodeRne); if (educf_etablissement != null) { college.educfData.Add("Effectifs", educf_etablissement.etabeffectifannees.Where(e=>e.annee== college.Annee.AnneeRentree).Sum(e => e.effectif).ToString()); List liste_niveaux = new List(); foreach(etabeffectifannee effectif in educf_etablissement.etabeffectifannees.Where(e => e.annee == college.Annee.AnneeRentree).OrderBy(e=>e.niveau.ordre)) { liste_niveaux.Add(effectif.niveau.nom + ": " + effectif.effectif); } college.educfData.Add("Niveaux", string.Join(" - ", liste_niveaux)); List liste_options = new List(); foreach (etaboptionsannee opt in educf_etablissement.etaboptionsannees) { liste_options.Add(opt.matiereoption.nom); } college.educfData.Add("Options", string.Join(" - ", liste_options)); } else { college.educfData.Add("Données Educ'Facile", "(Données introuvables)"); } } CollegeViewModel model = new CollegeViewModel(college, db, ModeAcces.Lecture); return View(model); } // GET: Colleges/Create public ActionResult Create(int? annee_id) { if (annee_id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Entity.College college = new Entity.College(); college.Annee_Id = annee_id.Value; AnneeFactory fact = new AnneeFactory(db); college.Annee = fact.getById(annee_id); college.hydrate(); CollegeViewModel model = new CollegeViewModel(college, db, ModeAcces.Creation); return View("Edit", model); } // POST: Colleges/Create // Afin de déjouer les attaques par sur-validation, activez les propriétés spécifiques que vous voulez lier. Pour // plus de détails, voir http://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create(Entity.College college) { if (ModelState.IsValid) { CollegeFactory collegeFactory = new CollegeFactory(db); collegeFactory.add(ref college); return RedirectToAction("Details", new { id = college.Id }); } college.hydrate(); CollegeViewModel model = new CollegeViewModel(college, db, ModeAcces.Creation); return View("Edit", model); } // GET: Colleges/Edit/5 public ActionResult Edit(int? id) { CollegeFactory collegeFactory = new CollegeFactory(db); Entity.College college = collegeFactory.getById(id); if (college == null) { return HttpNotFound(); } college.hydrate(); CollegeViewModel model = new CollegeViewModel(college, db, ModeAcces.Modification); return View(model); } // POST: Colleges/Edit/5 // Afin de déjouer les attaques par sur-validation, activez les propriétés spécifiques que vous voulez lier. Pour // plus de détails, voir http://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit(Entity.College college) { if (ModelState.IsValid) { CollegeFactory collegeFactory = new CollegeFactory(db); collegeFactory.update(ref college); return RedirectToAction("Details", new { Id = college.Id }); } college.hydrate(); CollegeViewModel model = new CollegeViewModel(college, db, ModeAcces.Modification); return View(model); } // GET: College/Delete/5 public ActionResult Delete(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } CollegeFactory collegeFactory = new CollegeFactory(db); Entity.College college = collegeFactory.getById(id); if (college == null) { return HttpNotFound(); } college.hydrate(); CollegeViewModel model = new CollegeViewModel(college, db, ModeAcces.Suppression); return View("Details", model); } // POST: College/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } CollegeFactory collegeFactory = new CollegeFactory(db); Entity.College college = collegeFactory.getById(id); int annee_id = college.Annee_Id; collegeFactory.delete(ref college); return RedirectToAction("Index", new { annee_id = annee_id }); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } }