// GET: Batiments/Edit/5 public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } //var batiment = await _context.Batiments.FindAsync(id); //if (batiment == null) //{ // return NotFound(); //} //return View(batiment); BatimentViewModel vm = new BatimentViewModel(new Batiment(), new BatimentCulturel()); return(View(vm)); }
// GET: Batiments/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var currentUser = _userManager.GetUserId(User); // Récupérer l'évaluation de l'utilisateur pour ce bâtiment s'il est connecté. if (currentUser != null) { var stars = _context.UtilisateurBatiment .Where(ub => ub.Utilisateur.Id.Equals(currentUser)) .Where(ub => ub.Batiment.BatimentId.Equals(id)) .Select(ub => ub.NombreEtoiles) .ToList() .FirstOrDefault(); ViewData["Utilisateur"] = currentUser; ViewData["Etoiles"] = stars; } // Calculer la moyenne des évaluations pour ce bâtiment var moyenneEvaluations = _context.UtilisateurBatiment .Where(ub => ub.Batiment.BatimentId.Equals(id)) .DefaultIfEmpty() .Average(r => r == null ? 0 : r.NombreEtoiles); ViewData["MoyenneEtoiles"] = moyenneEvaluations; var batiment = await _context.Batiments .Include(b => b.Ville) .FirstOrDefaultAsync(m => m.BatimentId == id); if (batiment == null) { return(NotFound()); } // Récupération des détails architecturaux var detailsArchi = _context.DetailsArchi .Where(b => b.BatimentId.Equals(id)).ToList(); var categories = from categorie in _context.Categories join batcat in _context.BatimentsCategories on categorie.CategorieId equals batcat.CategorieId join bat in _context.Batiments on batcat.BatimentId equals bat.BatimentId where bat.BatimentId == id select new Categorie { CategorieId = categorie.CategorieId, NomCategorie = categorie.NomCategorie, }; var batimentViewModel = new BatimentViewModel { Batiment = batiment, Details = detailsArchi, Categories = categories.ToList() }; return(View(batimentViewModel)); }
// GET: Batiments/Create public IActionResult Create() { BatimentViewModel vm = new BatimentViewModel(new Batiment(), new BatimentCulturel()); return(View(vm)); }