Esempio n. 1
0
        // 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));
        }
Esempio n. 3
0
        // GET: Batiments/Create
        public IActionResult Create()
        {
            BatimentViewModel vm = new BatimentViewModel(new Batiment(), new BatimentCulturel());

            return(View(vm));
        }