using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; using menu.Services; using System.Collections.Generic; using menu.Models; using Microsoft.AspNetCore.Http; namespace menu { public class MenuViewComponent : ViewComponent { private readonly MenuService _menuService; public MenuViewComponent(MenuService menuService) { _menuService = menuService; } public async Task InvokeAsync() { string? connectionString = ViewData["ConnectionString"] as string; if (string.IsNullOrEmpty(connectionString)) { return View("~/ViewComponents/Views/Shared/Components/Menu/Error.cshtml"); } string userMenuValue = HttpContext.Session.GetString("UserMenu") ?? "Non défini"; var subMenuItems = await _menuService.GetFormulaireGroupeSubMenuAsync(connectionString, userMenuValue); return View("~/ViewComponents/Views/Shared/Components/Menu/Default.cshtml", subMenuItems); } public async Task GetForItemsByGroupAsync(string selectedGroup) { string? connectionString = ViewData["ConnectionString"] as string; if (string.IsNullOrEmpty(connectionString)) { return new JsonResult(new { error = "Connection string non définie" }); } string userMenuValue = HttpContext.Session.GetString("UserMenu") ?? "Non défini"; List forItems = userMenuValue == "Admin" ? await _menuService.GetAllForItemsByGroupAsync(connectionString, selectedGroup) : await _menuService.GetForItemsByGroupAsync(connectionString, selectedGroup, userMenuValue); return new JsonResult(forItems); } } }